本文整理汇总了PHP中Expression::notNull方法的典型用法代码示例。如果您正苦于以下问题:PHP Expression::notNull方法的具体用法?PHP Expression::notNull怎么用?PHP Expression::notNull使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Expression
的用法示例。
在下文中一共展示了Expression::notNull方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getOpenPoint
/**
* @throws WrongArgumentException
* @return LogicalChain
**/
public static function getOpenPoint($left, $right, $point)
{
Assert::isFalse($point === null, 'how can i build logic from emptyness?');
$point = new DBValue($point);
$chain = new LogicalChain();
$chain->expOr(Expression::orBlock(Expression::andBlock(Expression::notNull($left), Expression::notNull($right), Expression::between($point, $left, $right)), Expression::andBlock(Expression::isNull($left), Expression::ltEq($point, $right)), Expression::andBlock(Expression::isNull($right), Expression::ltEq($left, $point)), Expression::andBlock(Expression::isNull($left), Expression::isNull($right))));
return $chain;
}
示例2: testHaving
public function testHaving()
{
$query = OQL::select('from TestUser');
$criteria = Criteria::create(TestUser::dao());
$this->assertCriteria($query->addHaving(OQL::having('id > 0')), $criteria->addProjection(Projection::having(Expression::gt('id', 0))));
$this->assertCriteria($query->addHaving(OQL::having('name is not null and (id <> $1 or id != $2)')->bindNext(4)->bindNext(8)), $criteria->addProjection(Projection::having(Expression::expAnd(Expression::notNull('name'), Expression::expOr(Expression::notEq('id', 4), Expression::notEq('id', 8))))));
$this->assertEquals(OQL::having('id + $15')->bind(15, 16)->toProjection(), Projection::having(Expression::add('id', 16)));
$this->assertCriteria(OQL::select('from TestUser')->addHaving(OQL::having('id = $1')->bindNext(23))->bindNext(42), Criteria::create(TestUser::dao())->addProjection(Projection::having(Expression::eq('id', 42))));
}
示例3: testChainForm
public function testChainForm()
{
$form = Form::create()->add(Primitive::string('a'))->add(Primitive::string('b'))->add(Primitive::integer('c'))->add(Primitive::integer('d'))->add(Primitive::boolean('e'))->add(Primitive::string('f'))->import(array('a' => 'true', 'c' => 123, 'd' => 123));
$andChain = Expression::chain()->expAnd(Expression::expOr(new FormField('a'), Expression::notNull(new FormField('b'))))->expAnd(Expression::eq(new FormField('c'), new FormField('d')))->expAnd(Expression::isFalse(new FormField('e')));
$this->assertTrue($andChain->toBoolean($form));
$form->importMore(array('e' => 'on'));
$this->assertFalse($andChain->toBoolean($form));
$orChain = Expression::chain()->expOr(Expression::eq(new FormField('a'), new FormField('b')))->expOr(Expression::expOr(new FormField('e'), Expression::gt(new FormField('c'), new FormField('d'))))->expOr(Expression::in(new FormField('f'), array('qwer', 'asdf', 'zxcv')));
$form->import(array());
$this->assertFalse($orChain->toBoolean($form));
$form->import(array('e' => '1'));
$this->assertTrue($orChain->toBoolean($form));
$form->import(array('a' => 'asdf', 'b' => 'qwerq', 'c' => '13', 'd' => '1313', 'f' => 'iukj'));
$this->assertFalse($orChain->toBoolean($form));
$form->import(array('c' => '13', 'd' => '12'));
$this->assertTrue($orChain->toBoolean($form));
$form->import(array('f' => 'asdfwer'));
$this->assertFalse($orChain->toBoolean($form));
$form->import(array('f' => 'qwer'));
$this->assertTrue($orChain->toBoolean($form));
}
示例4: checkIntegrity
/**
* @return MetaConfiguration
**/
public function checkIntegrity()
{
$out = $this->getOutput()->newLine()->infoLine('Checking sanity of generated files: ')->newLine();
set_include_path(get_include_path() . PATH_SEPARATOR . ONPHP_META_BUSINESS_DIR . PATH_SEPARATOR . ONPHP_META_DAO_DIR . PATH_SEPARATOR . ONPHP_META_PROTO_DIR . PATH_SEPARATOR . ONPHP_META_AUTO_BUSINESS_DIR . PATH_SEPARATOR . ONPHP_META_AUTO_DAO_DIR . PATH_SEPARATOR . ONPHP_META_AUTO_PROTO_DIR . PATH_SEPARATOR);
$out->info("\t");
$formErrors = array();
foreach ($this->classes as $name => $class) {
if (!($class->getPattern() instanceof SpookedClassPattern || $class->getPattern() instanceof SpookedEnumerationPattern || $class->getPattern() instanceof InternalClassPattern) && class_exists($class->getName(), true)) {
$out->info($name, true);
$info = new ReflectionClass($name);
$this->checkClassSanity($class, $info);
if ($info->implementsInterface('Prototyped')) {
$this->checkClassSanity($class, new ReflectionClass('Proto' . $name));
}
if ($info->implementsInterface('DAOConnected')) {
$this->checkClassSanity($class, new ReflectionClass($name . 'DAO'));
}
foreach ($class->getInterfaces() as $interface) {
Assert::isTrue($info->implementsInterface($interface), 'class ' . $class->getName() . ' expected to implement interface ' . $interface);
}
// special handling for Enumeration instances
if ($class->getPattern() instanceof EnumerationClassPattern) {
$object = new $name(call_user_func(array($name, 'getAnyId')));
Assert::isTrue(unserialize(serialize($object)) == $object);
$out->info(', ');
if ($this->checkEnumerationRefIntegrity) {
$this->checkEnumerationReferentialIntegrity($object, $class->getTableName());
}
continue;
}
if ($class->getPattern() instanceof AbstractClassPattern) {
$out->info(', ');
continue;
}
$object = new $name();
$proto = $object->proto();
$form = $proto->makeForm();
foreach ($class->getProperties() as $name => $property) {
Assert::isTrue($property->toLightProperty($class) == $proto->getPropertyByName($name), 'defined property does not match autogenerated one - ' . $class->getName() . '::' . $property->getName());
}
if (!$object instanceof DAOConnected) {
$out->info(', ');
continue;
}
$dao = $object->dao();
Assert::isEqual($dao->getIdName(), $class->getIdentifier()->getColumnName(), 'identifier name mismatch in ' . $class->getName() . ' class');
try {
DBPool::getByDao($dao);
} catch (MissingElementException $e) {
// skipping
$out->info(', ');
continue;
}
$query = Criteria::create($dao)->setLimit(1)->add(Expression::notNull($class->getIdentifier()->getName()))->addOrder($class->getIdentifier()->getName())->toSelectQuery();
$out->warning(' (' . $query->getFieldsCount() . '/' . $query->getTablesCount() . '/');
$clone = clone $object;
if (serialize($clone) == serialize($object)) {
$out->info('C', true);
} else {
$out->error('C', true);
}
$out->warning('/');
try {
$object = $dao->getByQuery($query);
$form = $object->proto()->makeForm();
FormUtils::object2form($object, $form);
if ($errors = $form->getErrors()) {
$formErrors[$class->getName()] = $errors;
$out->error('F', true);
} else {
$out->info('F', true);
}
} catch (ObjectNotFoundException $e) {
$out->warning('F');
}
$out->warning('/');
if (Criteria::create($dao)->setFetchStrategy(FetchStrategy::cascade())->toSelectQuery() == $dao->makeSelectHead()) {
$out->info('H', true);
} else {
$out->error('H', true);
}
$out->warning('/');
// cloning once again
$clone = clone $object;
FormUtils::object2form($object, $form);
FormUtils::form2object($form, $object);
if ($object != $clone) {
$out->error('T', true);
} else {
$out->info('T', true);
}
$out->warning(')')->info(', ');
}
}
$out->infoLine('done.');
if ($formErrors) {
$out->newLine()->errorLine('Errors found:')->newLine();
//.........这里部分代码省略.........
示例5: testWhere
public function testWhere()
{
$userId = 1;
$user = TestUser::create()->setId($userId);
$this->assertCriteria('from TestUser where id = $1 or id = $2 or $2 = id or $1 = $2', Criteria::create(TestUser::dao())->add(Expression::expOr(Expression::expOr(Expression::expOr(Expression::eqId('id', $user), Expression::eq('id', $userId)), Expression::eq($userId, 'id')), Expression::eq($userId, $userId))), array(1 => $user, 2 => $userId))->assertCriteria('from TestUser where id = 1 or id >= 1 or id <= 1 or id <> 1 or id != 1', Criteria::create(TestUser::dao())->add(Expression::expOr(Expression::expOr(Expression::expOr(Expression::expOr(Expression::eq('id', 1), Expression::gtEq('id', 1)), Expression::ltEq('id', 1)), Expression::notEq('id', 1)), Expression::notEq('id', 1))))->assertCriteria('from TestUser where id = 1 and Name = "some" ' . 'or Name = "any" or id = 1 > 2 = id * 2 + 1', Criteria::create(TestUser::dao())->add(Expression::expOr(Expression::expOr(Expression::expAnd(Expression::eq('id', 1), Expression::eq('Name', 'some')), Expression::eq('Name', 'any')), Expression::gt(Expression::eq('id', 1), Expression::eq(2, Expression::add(Expression::mul('id', 2), 1))))))->assertCriteria('from TestUser where (id = 1 and (Name = "some" or Name = "any"))', Criteria::create(TestUser::dao())->add(Expression::expAnd(Expression::eq('id', 1), Expression::expOr(Expression::eq('Name', 'some'), Expression::eq('Name', 'any')))))->assertCriteria('from TestUser where ((Name = "some" or Name = "any")) and (id = 1)', Criteria::create(TestUser::dao())->add(Expression::expAnd(Expression::expOr(Expression::eq('Name', 'some'), Expression::eq('Name', 'any')), Expression::eq('id', 1))))->assertCriteria('from TestUser where (id = 1) != ((1 = id) = (id >= 2))', Criteria::create(TestUser::dao())->add(Expression::notEq(Expression::eq('id', 1), Expression::eq(Expression::eq(1, 'id'), Expression::gtEq('id', 2)))))->assertCriteria('from TestUser where not (not not id = 1 and not id > 1)', Criteria::create(TestUser::dao())->add(Expression::not(Expression::expAnd(Expression::not(Expression::not(Expression::eq('id', 1))), Expression::not(Expression::gt('id', 1))))))->assertCriteria('from TestUser where id is null or id is not null or id is true or id is false', Criteria::create(TestUser::dao())->add(Expression::expOr(Expression::expOr(Expression::expOr(Expression::isNull('id'), Expression::notNull('id')), Expression::isTrue('id')), Expression::isFalse('id'))))->assertCriteria('from TestUser where id in (1) or id not in (1, "2", $1, true)', Criteria::create(TestUser::dao())->add(Expression::expOr(Expression::in('id', array(1)), Expression::notIn('id', array(1, '2', true, true)))), array(1 => true))->assertCriteria('from TestUser where id in ($1)', Criteria::create(TestUser::dao())->add(Expression::in('id', Criteria::create(TestUser::dao())->setProjection(Projection::property('id')))), array(1 => OQL::select('id from TestUser')->toCriteria()))->assertCriteria('from TestUser where id in ($1)', Criteria::create(TestUser::dao())->add(Expression::in('id', array(1, 2))), array(1 => array(1, 2)))->assertCriteria('from TestUser where id like $1 or id not like "Ы%" ' . 'or id ilike $2 or id not ilike "ы%" ' . 'or Name similar to "s" or Name not similar to $3', Criteria::create(TestUser::dao())->add(Expression::expOr(Expression::expOr(Expression::expOr(Expression::expOr(Expression::expOr(Expression::like('id', 'ы'), Expression::notLike('id', 'Ы%')), Expression::ilike('id', 'Ы')), Expression::notIlike('id', 'ы%')), Expression::similar('Name', 's')), Expression::notSimilar('Name', 'S'))), array(1 => 'ы', 2 => 'Ы', 3 => 'S'))->assertCriteria('from TestUser where created between "2008-08-06 10:00" and $1 ' . 'or id between id and 10', Criteria::create(TestUser::dao())->add(Expression::expOr(Expression::between('created', '2008-08-06 10:00', SQLFunction::create('now')), Expression::between('id', 'id', 10))), array(1 => SQLFunction::create('now')))->assertCriteria('from TestUser where (2 + -id --1) / 2 = id', Criteria::create(TestUser::dao())->add(Expression::eq(Expression::div(Expression::sub(Expression::add(2, Expression::minus('id')), -1), 2), 'id')), array(1 => 'id'));
}
示例6: fetchCollections
public function fetchCollections(array $collections, array $list)
{
Assert::isNotEmptyArray($list);
$ids = ArrayUtils::getIdsArray($list);
$mainId = DBField::create($this->getIdName(), $this->getTable());
foreach ($collections as $path => $info) {
$lazy = $info['lazy'];
$query = OSQL::select()->get($mainId)->from($this->getTable());
$proto = reset($list)->proto();
$this->processPath($proto, $path, $query, $this->getTable());
if ($criteria = $info['criteria']) {
$query = $criteria->setDao($this)->fillSelectQuery($query);
}
$query->andWhere(Expression::in($mainId, $ids));
$propertyPath = $info['propertyPath'];
$property = $propertyPath->getFinalProperty();
$proto = $propertyPath->getFinalProto();
$dao = $propertyPath->getFinalDao();
$selfName = $this->getObjectName();
$self = new $selfName();
$getter = 'get' . ucfirst($property->getName());
Assert::isTrue($property->getRelationId() == MetaRelation::ONE_TO_MANY || $property->getRelationId() == MetaRelation::MANY_TO_MANY);
$table = $dao->getJoinName($property->getColumnName());
$id = $this->getIdName();
$collection = array();
if ($lazy) {
if ($property->getRelationId() == MetaRelation::MANY_TO_MANY) {
$childId = $self->{$getter}()->getChildIdField();
} else {
$childId = $dao->getIdName();
}
$alias = 'cid';
// childId, collectionId, whatever
$field = DBField::create($childId, $self->{$getter}()->getHelperTable());
$query->get($field, $alias);
if (!$property->isRequired()) {
$query->andWhere(Expression::notNull($field));
}
try {
$rows = $dao->getCustomList($query);
foreach ($rows as $row) {
if (!empty($row[$alias])) {
$collection[$row[$id]][] = $row[$alias];
}
}
} catch (ObjectNotFoundException $e) {
/*_*/
}
} else {
$prefix = $table . '_';
foreach ($dao->getFields() as $field) {
$query->get(DBField::create($field, $table), $prefix . $field);
}
if (!$property->isRequired()) {
$query->andWhere(Expression::notNull(DBField::create($dao->getIdName(), $table)));
}
try {
// otherwise we don't know which object
// belongs to which collection
$rows = $dao->getCustomList($query);
foreach ($rows as $row) {
$collection[$row[$id]][] = $dao->makeObject($row, $prefix);
}
} catch (ObjectNotFoundException $e) {
/*_*/
}
}
$suffix = ucfirst($property->getName());
$fillMethod = 'fill' . $suffix;
$getMethod = 'get' . $suffix;
Assert::isTrue(method_exists(reset($list), $fillMethod), 'can not find filler');
Assert::isTrue(method_exists(reset($list), $getMethod), 'can not find getter');
foreach ($list as $object) {
if (!empty($collection[$object->getId()])) {
$object->{$fillMethod}($collection[$object->getId()], $lazy);
} else {
$object->{$getMethod}()->mergeList(array());
}
}
}
return $list;
}