PHPフレームワークPhalcon 1.0のリリースが成功した後、開発チームは引き続き開発に取り組んでいます。 この記事では、ベータのバージョン1.1.0で提示された最も興味深い機能を強調したいと思います。
- クエリデザイナーの結果のページネーション(QueryBuilder)
- Beanstalkdキューサーバー
- 暗号化
- 資産管理
- ORMバリデーターの例外モード
- ホスト名ルーティング
- Mvc \ Microアプリケーションでコントローラーを使用する
- あとがき
- cPanelでPhalconのサポートに投票してコミュニティを支援します
クエリデザイナーのページネーション(QueryBuilder)
以前は、ページデータはモデルデータとネイティブ配列の出力にのみ使用可能でした。 ページ区切りを使用して、SQL LIMIT / OFFSETステートメントを使用するQueryBuilderコンストラクターを介して任意のクエリデータを出力できるようになりました。 大きなデータセットを出力するのに役立ちます。
use Phalcon\Paginator\Adapter\QueryBuilder; $builder = $this->modelsManager->createBuilder() ->columns('id, name') ->from('Robots') ->orderBy('name'); $paginator = new Paginator(array( "builder" => $builder, "limit" => 10, "page" => 1 )); $page = $paginator->getPaginate();
Beanstalkdキューサーバー
Beanstalkd Queue Serverのシンプルなクライアントは、現在フレームワークの一部です。
// $queue = new Phalcon\Queue\Beanstalk(array( 'host' => '192.168.0.21' )); // ( ) $queue->put(array('proccessVideo' => 4871)); // ( ) $queue->put( array('proccessVideo' => 4871), array('priority' => 250, 'delay' => 10, 'ttr' => 3600) ); while (($job = $queue->peekReady()) !== false) { $message = $job->getBody(); var_dump($message); $job->delete(); }
暗号化
mcrypt PHPライブラリに基づく暗号化クラスがこのバージョンのPhalconに追加されました
// $encryption = new Phalcon\Crypt(); $key = 'le password'; $text = 'This is a secret text'; $encrypted = $encryption->encrypt($text, $key); echo $encryption->decrypt($encrypted, $key);
資産管理
このコンポーネントを使用すると、CSSやJavascriptなどの静的リソースを簡単に管理できます。
// CSS $this->assets ->addCss('css/style.css') ->addCss('css/index.css'); // - js- $this->assets ->addJs('js/jquery.js') ->addJs('js/bootstrap.min.js');
そして、それらをテンプレートに表示します
<html> <head> <title>Some amazing website</title> <?php $this->assets->outputCss() ?> </head> <body> <!-- ... --> <?php $this->assets->outputJs() ?> </body> </html>
ORMバリデーターの例外モード
データ検証中、データベースレコードの作成/更新のプロセスで、save()/ create()/ update()メソッドはブール値を返します。 パラメーターの1つが検証に合格しなかった場合はFALSE。 これで、この動作を変更して例外をスローできます。
use Phalcon\Mvc\Model\ValidationFailed; try { $robot = new Robots(); $robot->name = 'Bender'; $robot->save(); } catch (ValidationFailed $e) { echo 'Reason: ', $e->getMessage(); }
ホスト名ルーティング
ルーティングルールで、ホスト名を指定できるようになりました
$router = new Phalcon\Mvc\Router(); $router->addGet('/api/robots', array( 'module' => 'api', 'controller' => 'robots', 'action' => 'index' ))->setHostName('api.phalconphp.com');
ルートグループを使用することもできます。
$group = new Phalcon\Mvc\Router(); $group->setHostName('api.phalconphp.com'); $groop->addGet('/api/robots', array( 'module' => 'api', 'controller' => 'robots', 'action' => 'index' )); $groop->addGet('/api/robots/{id}', array( 'module' => 'api', 'controller' => 'robots', 'action' => 'show' )); $router->mount($group);
Mvc \ Microアプリケーションでコントローラーを使用する
Phalconの新しいバージョンでマイクロアプリケーションの構造をより適切に整理するために、コントローラーを要求ハンドラーとして指定できます(以前は呼び出し可能な値のみを使用できました)。
$collection = new Phalcon\Mvc\Micro\Collection(); // $collection ->setPrefix('/posts') ->setHandler(new PostsController()); // $collection ->setPrefix('/posts') ->setHandler('PostsController', true); $collection->get('/', 'index'); $collection->get('/edit/{id}', 'edit'); $collection->delete('/delete/{id}', 'delete'); $app->mount($collection);
あとがき
Phalcon 1.1.0には、その他の変更とバグ修正が含まれています。 変更の全リストはCHANGELOGにあり 、このバージョンのフレームワークのドキュメントを読むことができます。
Phalconのパフォーマンスをまだ個人的にテストしていない場合は、すぐにインストールできます
git clone http://github.com/phalcon/cphalcon cd build git checkout 1.1.0 sudo ./install
Windowsユーザーは、 ダウンロードページからDLLをインストールするだけです。
開発者は、 フォーラム (偶然にもPhalconで作成されています)およびStack Overflowでこのリリースについて議論するように招待されています。
バグをキャッチした場合、 Githubはプルリクエストまたは失敗したテストを喜んで受け入れます。
cPanelでPhalconのサポートに投票してコミュニティを支援します
Phalcon開発者は、フレームワークのサポートをcPanel Webホスティングコントロールパネルに追加することを提案しています。
PhalconがcPanelクライアントの手頃な価格の拡張機能になると、フレームワークの人気が高まるだけでなく、開発者、ホスティング企業、そしてその後のエンドユーザーにもメリットがあります。PhalconはCで記述されているため、 PHPで書かれた類似物と比較したサーバー。
cPanel Webサイトで機能要求に投票することにより、フレームワークの開発をサポートできます。
http://features.cpanel.net/responses/add-support-for-phalconphp-extension-apache-php
ソース:
PSテキストはagent_jによって翻訳および作成されていますが、特定の理由により、それを単独で配置することはできません。