Fuelphpのパッケージ

この記事では、それらがどのように配置されているか、何のためにあるのか、 Fuelphpパッケージ (以下、 パッケージ と呼ぶ )についての知識を共有したいと思います。 Fuelphpパッケージの実装と機能を他のフレームワークの類似物と比較してください。 このテーマに関するSimfony2とYiiの支持者の意見を知りたいと誰もが興味を持っていると思います。あなたの計算をコメントに投げ入れてください。 さらなる例はfuel-ninjauthパッケージと見なされます



Fuelphpのコンテキストでパッケージを割り当てる

アプリケーションで特定の繰り返しグローバルタスクを実行するために、サービスまたはサービスを使用するアプローチが長い間使用されてきましたが、これは基本的に同じことです。 シンプルな場合、サービスはアプリケーションのコンテキストで何らかのグローバルタスクを実行するオブジェクトです。 Fuelphpでは、パッケージがそのようなサービスの役割を果たします。



パッケージのインストール

パッケージはコミュニティと共有できます。 パッケージをインストールする方法はいくつかあります;リポジトリの内容をプロジェクトにコピーするか、composerを使用するか、 oilユーティリティを使用するだけです。



次のコマンドでオイルに切り替えます:

$ php oil package install ninjauth
      
      





このパッケージはデータベースのデータを使用するため、移行しましょう。

 #   users     $ oil g migration create_users username:varchar[50] password:string group:int email:string last_login:integer login_hash:string profile_fields:text created_at:int $ oil refine migrate #        "authentications" $ oil refine migrate --packages=ninjauth
      
      





パッケージ構造

例としてfuel-ninjauthパッケージを使用した可能な構造を考えます

画像

1.パッケージクラス
クラスフォルダーには、パッケージクラスが含まれています。



1.1パッケージモデル
パッケージがデータベースを使用する場合、モデルはパッケージクラスの一部になることもできます。



1.2。 コントローラー
パッケージ内のコントローラーはあまり使用されず、主にパッケージ内の表現を形成するために使用されます。 結果として、すべてのコントローラーロジックは次のようになります。

 return View::forge('register', array( //register -     №4 views 'user' => (object) compact('username', 'full_name', 'email', 'password') ));
      
      





2.設定
構成またはパッケージ設定ファイル。

設定にアクセスする例:

 \Config::get('ninjauth.default_group');
      
      





3.移行
このフォルダーには、データベース内のデータ構造をすばやく組み立てたり、必要なテーブルを作成したりするために必要な移行クラスが含まれています。



4.提出
パッケージはビューを使用できます。 原則として、パッケージはロジックを処理し、ビューの形成に直接関係していませんが、パッケージ内でビューを形成することが良い解決策であることが判明する場合があります。

例を表示:

 <?php echo Form::open(null, array('id' => 'register')); ?> <?php if (isset($error)): ?> <span class="error"><?php echo $error; ?></span> <?php endif; ?> <p> <label for="username">Username</label> <?php echo Form::input('username', $user->username) ?> </p> <p> <label for="full_name">Full Name</label> <?php echo Form::input('full_name', $user->full_name) ?> </p> <p> <label for="email">Email</label> <?php echo Form::input('email', $user->email) ?> </p> <p> <label for="password">Password</label> <?php echo Form::password('password') ?> </p> <?php echo Form::submit('submit') ?> <?php echo Form::close() ?>
      
      





5.ブートストラップファイル。
このファイルは、オートローダーのパッケージのファイル構造を記述するために使用されます。

 Autoloader::add_classes(array( 'NinjAuth\\Controller' => __DIR__.'/classes/controller.php', 'NinjAuth\\Exception' => __DIR__.'/classes/exception.php', 'NinjAuth\\CancelException' => __DIR__.'/classes/exception.php', 'NinjAuth\\ResponseException' => __DIR__.'/classes/exception.php', 'NinjAuth\\Model_Authentication' => __DIR__.'/classes/model/authentication.php', 'NinjAuth\\Strategy' => __DIR__.'/classes/strategy.php', 'NinjAuth\\Adapter' => __DIR__.'/classes/adapter.php', 'NinjAuth\\Adapter_SimpleAuth' => __DIR__.'/classes/adapter/simpleauth.php', 'NinjAuth\\Adapter_Sentry' => __DIR__.'/classes/adapter/sentry.php', 'NinjAuth\\Adapter_Warden' => __DIR__.'/classes/adapter/warden.php', 'NinjAuth\\Strategy_OAuth' => __DIR__.'/classes/strategy/oauth.php', 'NinjAuth\\Strategy_OAuth2' => __DIR__.'/classes/strategy/oauth2.php', 'NinjAuth\\Strategy_OpenId' => __DIR__.'/classes/strategy/openid.php', ));
      
      





パッケージメソッドを使用する場合にのみ、ファイルが自動的にダウンロードされることを理解することが重要です。 つまり、パッケージメソッドがスクリプト内のどこでも使用されなかった場合、そのクラスは読み込まれません。 アプリケーションをより簡単かつ高速にします。 アプリケーションが常に知っている唯一のものは、bootstrap.phpファイルの場所についてです。

画像



使用例

NinjAuthパッケージは、標準の自動化パッケージ用のアダプターであり、その操作の簡単な例を作成することは困難です。 したがって、 fueltoolsパッケージを入手してください 。 メソッドまたは変数が返すものをすばやく確認する必要がある場合に、コードをデバッグするために必要です。 したがって、アプリケーションの100番目のメソッドを記述したとしましょう。

 public function action_save() { $var1 = 'var1'; $var2 = 'var2'; $orm = Model_Test::forge()->set('one', $var1)->set('two',$var2); \Fueltools\FB::info($var1); \Fueltools\FB::info($var2); \Fueltools\FB::info($orm->save()); }
      
      





Firefoxコンソールでこのメソッドの結果を確認します。 画像

Fuelphpは、スクリプトの実行に必要なORMおよびFuelToolsパッケージクラスのみをダウンロードしました。

画像



まとめ

Fuelphpは、パッケージの形で非常に幅広い可能性を提供します。

-秩序正しく理解可能なアプリケーションアーキテクチャの形成

-fueltoolsの例のようなサービスの適用

-標準のAuthパッケージへのアダプターであるfuel-ninjauthパッケージのように、パターンを適用し、追加機能を既存のパッケージに接続します。

-パッケージを使用すると、表現を形成する機能を使用できます。必要に応じて、従来のコントローラーでは、チェックと入出力のみを残して、他のすべてをパッケージに転送できます。

-パッケージを使用すると、アプリケーション内の他のコードから抽象化できます。別のプロジェクトでテストおよび接続するのが簡単です

-パッケージオブジェクトとメソッドは、アプリケーション全体のコンテキストで利用可能になります

-パッケージを使用すると、アプリケーションが簡単かつ高速になります



Src

-fuel-ninjauthパッケージ

-fueltoolsパッケージ

-Fuelphp github.comの公式パッケージリポジトリ

-fuel -packagesフォーラムのリポジトリ



All Articles