Yafを初めて使う時


  • 原文の作者:私は二亮
  • です.
  • 原文のリンク:http://blog.2liang.me/2016/09/03/first-use-yaf
  • 転載は本文に原文のリンク、作者などの情報を表示して保持しなければなりません.  yaf公式文書の住所:http://www.laruence.com/manual/   0 x 00から始まる問題  新しい小さいプロジェクトは今私一人でやっています.タイプを選ぶ時、リーダーと他の同僚の意見を合わせて、最終的に鸟哥のYafフレームを使用しました.結局このフレームはPHP拡張を使って実現しました.効率は他の純粋なPHPに比べて実現された枠組みで、効率が多くなりました.しかし、以前Yafフレームを使ったことがないので、初めて使う過程で、いくつかの問題にも遭遇しました.今日は暇があれば、これらの問題を記録して、後で使います.   0 x 01 Yafフレームのマルチモジュール  このプロジェクトはフロント、管理、インターフェースなどのモジュールに分かれており、すべてのモジュールをYafのデフォルトモジュールに置くと、プロジェクトの結合度が高くなり、後期メンテナンスコストも上昇するので、最終的にはYafのマルチモジュールを使ってプロジェクトをモジュール別に配置することにした.  Yafフレームワークでは、複数のモジュールの配置が行われ、他のフレームとは異なるところがあります.最外層ディレクトリのモジュールは、プロジェクトのデフォルトモジュールであるIndexモジュールであり、他のモジュールはmodulesディレクトリの下に置く必要があります.彼はこれらのモジュールを平行に配置することはできません.  一方、Yafでは、他のモジュールをmodulesディレクトリに配置し、YafフレームはMVCアーキテクチャのControllersとViewsのマルチモジュールのみをサポートし、Modelsはモジュールの下でmodelsフォルダを新規作成して処理することをサポートしていない.すべてのモジュールは、プロジェクトApplicationディレクトリ下のmodelsフォルダを共有しなければなりません.  
  • )マルチモジュールディレクトリ構造は、以下の通りである.当我第一次使用Yaf_第1张图片
  •    
  • )マルチモジュール
  • を構成する.
    プロジェクトディレクトリを設定した後、設定ファイルのapple.modulesを変更する必要があります.
    application.modules = "Index,Api,Admin"
    
    0 x 02 modelsのマルチモジュール
      前のセクションで言ったように、Yafフレームワークではサブモジュールディレクトリの下でモデルズを新規作成することをサポートしないで、共用デフォルトモジュールのモデルスカタログを使用しなければなりません.もし私たちがすべてのモデルlsを直接にこのカタログ下開発に置くと、プロジェクトの限界が明らかになりません.開発過程においても、後期メンテナンスにおいても、不便をもたらします.したがって、別の方法でサブモジュールを行う必要があります.  modelsディレクトリの下で、複数のフォルダを作成し、名前空間を使用して、複数のフォルダのモードでmodelsを使用すると、ピットがあります.  
    名前空間について
      各フォルダの下で名前空間を使うには、このフォルダだけを名前空間として使わなければなりません.models/フォルダ名を名前空間として使用することはできません.Yafフレームはmodelに対してデフォルトでmodelsフォルダに検索します.一旦modelsを追加したら、このmodelファイルが見つかりません.  modelファイル名とクラス名のピットについて  Yafで単一モジュールを使用する場合、モデルファイルはクラス名と一致することができる.複数のフォルダを使用する場合は、クラス名はファイル名に加えてModelでなければなりません.この問題は長い間私を困らせていました.  
    0 x 03 ORMの使用
      Yafフレームワークの特徴の一つは軽量であり、多くのものはORMではなく、開発者が自分の好きなORMを選んだり、自分で開発したORMをフレームに使ったりしています.今回のプロジェクトでは、LaravelフレームのEloquent ORMを使っています.目の前のLaravelはすでに自分のEloquent ORMをコンポーネント化しました.composserを使うだけでインストールできます.インストールが完了したら、Yafのbootstrapファイルにcompserのautloadファイルを導入すればいいです.  
    0 x 04使用中の小さな穴があります.
      
    controller継承の問題
     一般的なPHPフレームは、マルチモジュールを使用する過程で、モジュールごとに独立して一つのプロジェクトにすることができ、自分のベースクラスなどがありますが、Yafではすべての継承はデフォルトモジュールのControllersの下に置かなければなりません.