2012-01-02 9 views
2

PHPと一緒にMVCフレームワークを使い、コードとプレゼンテーションを素早く分離したいと思います。私は現在CakePHPを見始めました。それは素晴らしそうに見えますが、それらのすべての魔法の弦について何がありますか?マジック文字列を避けるにはどうすればいいですか(PHP MVCフレームワーク)

は(CakePHPの料理書から取られた)以下のコードを見てみましょう:それはそれらの魔法の文字列で私を気に

class User extends AppModel { 
    var $name = 'User'; 
    var $hasOne = 'Profile'; 
    var $hasMany = array(
     'Recipe' => array(
      'className' => 'Recipe', 
      'conditions' => array('Recipe.approved' => '1'), 
      'order'  => 'Recipe.created DESC' 
     ) 
    ); 
} 

。コード内の文字列は、出力されるテキストでなければなりません!

における一つのスペルの間違い「「Recipe.created DESCと期待どおりに動作しません。ここに助けるために何のインテリセンス/コード補完はありません!

また、私はremaneしたい場合はどのような 『何かにレシピ』を?他の私は、すべてのコードを手動で検索し、それが通常のテキストや魔法の文字列の一つだかどうかを確認する必要が

が良く、他のPHP MVC-フレームワークです(読み:以下、あるいは全く魔法の文字列)。?

どのように魔法の弦を避けるためのリンク(できるだけ多く)...?

答えて

2

ケーキは、メソッド '設定より規約' 次のology。これは、CRUDベースのアプリケーション(主に)のプロトタイプ作成と展開を迅速に行うために使用できるフレームワークです。フードの下で何が起こっているのかわからない場合は、舞台裏で多くの「魔法」が起こります。

具体的な例については、それほど悪くはありません。レシピは実際にUserモデルが関連しているRecipeモデルを参照しています。 Cakeには、モデルの関係を適切に設定するためにいくつかのモデル変数を使用する組み込みORMがあります。これは、どのORMフレームワークでも当てはまります。クラス名を変更しない限り、すべての参照を変更する必要はありません。これは、どのPHPコードでも当てはまります。

他のフレームワークの推奨事項については、フレームワークを扱う前に自分のPHP MVCスタックで作業することをお勧めします。 PHPを正しく理解している場合は、CodeIgniterまたはKohonaフレームワークをご覧ください。これらはCakeより剛性が低い。 Zend Frameworkもご覧ください。さまざまな機能を持つ他の多くのフレームワークがあります(提供されるコントロールのさまざまなバリエーションによって多かれ少なかれ)。あなたがする必要があるのは見回しだけです。

+1

良い説明、特に質問です。しかし、真剣に、CakePHPは素敵なフレームワークです.Railsのコンベンション設定とは何の問題もありません。あなたのアプリのデザインを事前に計画しておく必要がありますが、あなたは何の問題もありません。また、「魔法の文字列」でタイプミスをした場合、エラーをスローします...コントロール構造の綴りが間違っているとエラーが出るようです。 – benesch

0

私はremane 'レシピ' にしたい場合はどのような、あなたもそこ

をやったことを見...

どのORMライブラリを選択しても、常に魔法の文字列があります。最も単純な場合を除いて、クラスを自動的にデータベーステーブルにマップするのに十分な情報がありません。マジック文字列は、実際にはORMがマッピングを作成するために必要なメタデータです。

定数を定義するかパブリックな静的フィールドを作成することで、マジック文字列を避けることができますが、最終的にはせいぜい1つのファイルに統合するだけです。

ORMを使用する場合は、何に関係なくメタデータを提供する必要があります。それを念頭に置いて、最も快適なORMを選択する必要があります。

関連する問題