"PHP"に関連付けられた記事
CakePHPのコントローラーでプラグインのモデルを使う場合
CakePHPです。
コントローラーでプラグインのモデルを使う場合は、Users.Userのようなプラグイン記法に則って書かないとダメ。
普通のモデルのように書くとClassRegistryに登録される際、実装が見つからないため、AppModelのインスタンスとして登録されてしまう。
Laravelでbootstrapとlessを使う
海外では人気急上昇中らしいPHPフレームワークLaravelを試しています。
IoCコンテナ(DIコンテナ)が装備されているようです。
scaffoldingは標準でサポートされていません。
最近のPHPフレームワークの動向としては、Rails的なアプローチを目指したけど、やっぱりモンキーパッチによる解決ができないし、うまくいかねーなってかんじで、Java的なアプローチを取り入れるものの人気が出てきてるかんじでしょうか。
CakePHPのプレフィックスルーティングでアクセス制御を行う
CakePHPではユーザーのロールによるアクセス制御を行うために、Aclコンポーネントが用意されています。
AclコンポーネントではDbAcl、IniAcl、PhpAclの3種類のクラスが用意されていて、
それぞれ、ACLをデータベースに格納、iniファイルに記述、PHPファイルに記述というかんじです。
しかし、CookbookのACLを制御するシンプルなアプリケーションを読むかぎり、制御リストに一個づつcontrollerやactionを指定していくようで、ちょっとめんどくさいです。
そこで、プレフィックスルーティングを使ってアクセス制御を行ってみます。
プレフィックスルーティングとは、コントローラーをbakeするときに「Would you like to create the methods for admin routing?」と聞かれるやつです。
アクセス制御を行いたいURLが/adminとか/manager以下のみの場合は簡単に設定できるので有効です。
今回はroleをadminとmanagerの2つに設定して、/admin以下はadminのみ、/manager以下はmanagerのみがアクセスできるようにします。
Phalconで簡易ブログの作成1
爆速らしいPHPフレームワークPhalconで簡易ブログを作成してみます。
PhalconはCで実装してapacheやnginxのextensionとしているため速いらしいです。
期待大ですね!
Phalconのインストールとdevtoolsの設定が終わってることを前提にします。
手順通りにインストールされたPhalconは1.3.2でした。
Phalconでマルチモジュールのルーティング
Phalconのマルチモジュールプロジェクトで、frontendとbackendのモジュールがあるとします。
frontendはhttp://localhost/phalcon-multiple-module/、backendはhttp://localhost/phalcon-multiple-module/admin でアクセスできるようにルーティングします。
frontend側はsetDefaultModule()(名前空間を使う場合はsetDefaultNamespace()も)するだけでシングルモジュールと同じルーティングになりますが、backend側も同じルールのルーティングを適用しようとした場合、ちょっと面倒くさいです。
PhalconのルーティングはPhalcon\Mvc\Routerのaddメソッドで追加していきます。
Phalconで既存のプロジェクトにモジュールを追加する1
PhalconでCakePHPやSymfonyにおけるPluginやRailsにおけるGemのように、パッケージ化されたMVCを抜き差しできる仕組みがないか調べてみたのですが、どうもなさそうなかんじです。
Pluginクラスがあるのですが、これはDispatherに絡めてフック処理を入れたりするもののようです。
そこで、モジュールを使って実現できないか試してみます。
以前作成した簡易ブログにコメント機能を付けていきます。