Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Как я понимаю, она достигается в основном за счет очень гибкого кэширования. Но есть и еще один фактор — модуль для php, который идет в комплекте. Часть классов, которые требуются постоянно, были оформлены в виде модуля, что несомненно ускорило их работу.
неуверенность в себе, ранимость, предпочтение творческого уединения шуму внешней деятельности, склонность к мечтательности
class Files_Db_File_get extends zzMysql{
function onRun(){
//prepare tags array
$tags = preg_split('/\s*,\s*/', $this->tags);
$this->tags = array_unique($tags);
$this->countTags = count($this->tags);
return parent::onRun();
}
}SELECT
fb.id
FROM `tag_file_rel` as tfr
JOIN `file_body` as fb ON fb.id = tfr.file_id
WHERE
(tfr.`tag` in ~$tags~)
GROUP by tfr.`file_id`
HAVING count(tfr.`file_id`) = ~$countTags~
ORDER BY fb.`date`, fb.`id`
//get tags from input
$search = array('tags' => 'php, onphp, framework, open source');
//get data from SQL (ZZ is factory)
$files = ZZ()->Files_Db_File_get($search)->toAssign('id');
* This source code was highlighted with Source Code Highlighter.$postList =
Criteria::create(Post::dao())->
add(
Expression::in('tagList.word', $tagList)
)->
getList();
* This source code was highlighted with Source Code Highlighter.
<class name="Post" type="final">
<properties>
<identifier/>
<property name="title" type="String" size="50" required="true"/>
<property name="author" type="Author" relation="OneToOne" required="true" fetch="lazy"/>
<property name="tags" type="Tag" relation="OneToMany" required="true" fetch="lazy"/>
</properties>
<pattern name="StraightMapping"/>
</class>
echo
Criteria::create(Post::dao())->
add(
Expression::in('tagList.word', $tagList)
)->
toDialectString(PostgresDialect::me())."\n";
* This source code was highlighted with Source Code Highlighter.
- class ProtoUser extends AutoProtoUser
- {
- public function makeForm($prefix = null)
- {
- $form = parent::makeForm($prefix);
- $form->get('mail')->
- setAllowedPattern(PrimitiveString::MAIL_PATTERN);
- // можно также добавить правила/ограничения на логин и т.д.
- return $form;
- }
- }
- $form =
- User::proto()->makeForm()->
- drop('id')->
- add(
- Primitive::string('passwordConfirm')->
- )->
- addRule(
- 'passwordConcistence',
- Expression::eq(
- FormField::create('password'),
- FormField::create('passwordConfirm')
- )
- )->
- import($_POST)->
- checkRules();
- if ($form->getErrors()) {
- // данные не корректны
- }
Аутичный onPHP: обзор