ホームページ  >  記事  >  php教程  >  Cakephp を始めるための基本

Cakephp を始めるための基本

WBOY
WBOYオリジナル
2016-06-13 12:02:28858ブラウズ


まず、cakephp の実行プロセスを見てみましょう (画像は百度百科から借用):
1: まず、サーバーが書き換えをサポートしていない仮想ホストである必要があります。リライトをサポートすると、cakephp が正常に動作しなくなります。
2: すべてのリクエストをcakephpフレームワークに送信し、フレームワークのルートを入力します。cakephpにはデフォルトの配布ルールのセットが付属しています(例: http://.../test/test、ルート設定はありません)。この場合、cakephp は test_controller コントローラーのテスト メソッドを自動的に実行します)。
ルートを構成することで、実行したいリクエストをコントローラーとメソッドに送信できます。構成は次のとおりです (app/config/routes.php):

Copyコード コードは次のとおりです:


Router::connect('/pages/*', array('controller' => 'test', 'action' = > 'index '));


3: リクエストがコントローラーに入ると、cakephp はコントローラーの名前に従ってデフォルトのモデルをロードします。例: TestController はモデルの下に test.php ファイルを自動的にロードします。その後、次のメソッドを通じてモデルのメソッドを呼び出すことができます。

コードをコピー コードは次のとおりです:


$this->test->find('all') ;


cakephp フレームワークのコントローラー基本クラスのソース コードを表示します (cakelibscontrollercontroller.php の __mergeVars メソッド内)

コードをコピーします コードは次のとおりです。


if ($this->uses !== null && $this->uses !== false) {
$merge[] = 'uses';
}
foreach ($merge as $var) {
if (isset($appVars[$var]) && !empty($appVars[$var]) && is_array($this) ->{$var})) {
if ($var !== 'uses') {
$normal = Set::normalize($this->gt;{$var}); $app = Set::normalize($appVars [$var]);
if ($app !== $normal) {
$this->{$var} = Set::merge($app) , $normal);
}
} else {
$this->{$var} = array_merge($this->{$var}, array_diff($appVars[$var], $ this->{$var})) ;
}
}
}

cakephp がコントローラーを構築すると、uses 配列内のすべてのモデルがインスタンス化されます。
4, 5, 6: コントローラーとモデルが直接ビジネスロジックを扱う処理です。 注意すべき点は、cakephp のモデルは AppModel から一部のデータベース操作メソッドが実装されていることです。デフォルトでデータベース内のテーブルに関連付けられます。これはあまり良いことではありません。モデルはデータベースの単なる操作層です。
7: 業務処理が完了したら、最終データをHTMLに統合してブラウザに出力する必要があります。 Cakephp のビューには、レイアウト ファイル、要素ファイル、およびテンプレート ファイルが含まれています。これらのファイルは、バージョン 1.3 で ctp のサフィックスを採用しており、var $ext = '.ctp' を変更してテンプレートのサフィックスを変更できます。ファイル。
要約:cakephp フレームワークは使用するには柔軟性が不十分であり、モデル層には制限があります。ビュー ファイルで使用される構文は PHP ですが、これはチーム開発におけるタスクの分離には不便です。 Cakephp は、フレームワークによって提供されるスキャフォールディング、コア コンポーネント、およびいくつかのクラスを使用して、小規模なプロジェクトに非常に優れた能力を発揮し、プロジェクトを迅速かつ簡単に構築できます。私はcakephpを初めて使用するので、私の理解に偏りがあるかもしれません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。