サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GWの過ごし方
book.cakephp.org
バリデーション CakePHP のバリデーションは、任意の配列データに対するバリデーションを簡単に行うための バリデーター構築のパッケージを提供します。 API 中の利用可能なバリデーションルールの一覧 をご覧ください。 バリデーターを作成する class Cake\Validation\Validator バリデーターオブジェクトは1セットのフィールドに適用されるルールを定義します。 バリデーターオブジェクトはフィールドとバリデーションセットとの間のマッピングを含みます。 その引き換えに、バリデーションセットは、関係するフィールドに適用されるルールの集合体を 提供します。バリデーターを作成するのは簡単です。 :
CakePHP の規約 私たちは「設定より規約」(convention over configuration) という考え方に賛成です。 CakePHP の規約を習得するには少し時間がかかりますが、長い目で見ると時間を節約していることになります。 規約に従うと自由に使える機能が増えますし、設定ファイルを調べまわってメンテナンスするという悪夢からも 開放されます。 規約によって開発が統一感を持つため、開発者が加わってすぐに手伝うということがやりやすく なります。 コントローラーの規約 コントローラーのクラス名は複数形でパスカルケースで、最後に Controller が付きます。 UsersController 、 ArticleCategoriesController は規約に合ったコントローラー名の例 となります。 コントローラーにある public メソッドは、アクションとしてブラウ
ルーティング ルーティングはURLをどのコントローラーのアクションと関連付けてマッピングするか決める機能です。 これはCakePHP でURLをより細かく柔軟に設定できるようにするために作られました。 Apache の mod_rewrite はルーティングのために必要でないです。しかし、これはアドレスバーを綺麗に見せます。 CakePHP でのルーティングはまた 配列による引数を文字列によるURLに変換するリバースルーティングも含みます。 リバースルーティングによって、簡単にアプリのURLの構造を全部のコードの書き直しをせずにリファクタリングできます。 ルーティングの設定 ルーティングの設定は app/Config/routes.php でできます。 このファイルは必要なルートを制御し特定のルートを指定することを許可するときに Dispatcher によってインクルードされます。 リ
データの保存 class Cake\ORM\Table データを読み出した 後は、 おそらく更新を行ってその変更を保存したいでしょう。 データ保存の概要 アプリケーションは通常、データが保存されるいくつかの方法を持っています。 最初のひとつは言うまでもなくウェブフォームを通して、 また他の方法としてはコード中で直接データを生成または変更して、 データベースに送られるようにすることです。 データの挿入 データベースにデータを挿入する最も簡単な方法は、新しいエンティティーを作成して それを Table クラスの save() に渡すことです。 : use Cake\ORM\TableRegistry; // Prior to 3.6 use TableRegistry::get('Articles') $articlesTable = TableRegistry::getTableLoc
クイックスタートガイド CakePHP を学ぶ最も良い方法はなにか作ってみることです。 簡単なコンテンツ管理アプリケーションから作ることを始めましょう。 コンテンツ管理チュートリアル このチュートリアルは簡単な CMS (Content Management System) アプリケーションを作ります。 はじめに CakePHP のインストールを行い、データベースの作成、 そしてアプリケーションを素早く仕上げるための CakePHP が提供するツールを使います。 必要なもの: データベースサーバー。このチュートリアルでは MySQL サーバーを使います。 データベースを作成するための SQL の知識が必要です。CakePHP は、それを前提としています。 MySQL を使用するとき、 PHP で pdo_mysql が有効になっていることを確認してください。基礎的な PHP の知識。始
セキュリティ class SecurityComponent(ComponentCollection $collection, array $settings = array()) Security コンポーネントを使うと、アプリケーションにさらに堅牢なセキュリティを導入できます。 このコンポーネントは、以下の様々なタスクのためのメソッドを提供します。 アプリケーションが受け付ける HTTP メソッドの限定CSRF 防御フォーム改ざん防止SSL の利用を要求コントローラ間の通信制限全てのコンポーネントと同様に、いくつかの設定できるパラメータがあり、 これら全てのプロパティは、直接設定したり、コントローラの beforeFilter の中で、 プロパティと同じ名前のセッターメソッドで設定できます。 Security コンポーネントを使用することで、自動的に CSRF とフォーム改ざんを 防
国際化と地域化 アプリケーションをより多くのユーザーに届けるのに最も良い方法の一つは、 複数の言語に対応することです。これは、しばしば気が遠くなるような作業になります。 しかし、CakePHP の国際化と地域化の機能は、これを容易にします。 まずは、いくつかの専門用語について理解しましょう。 国際化 (internationalization) とは、あるアプリケーションを地域化できるようにすることです。 地域化 (localization) とは、あるアプリケーションを特定の言語や文化での表現( すなわちロケール (locale)) に適応させることです。国際化と地域化は、それぞれ「i18n」と 「l10n」というように省略されます。「internationalization (国際化)」の最初と最後の文字の間に 18文字あるから「i18n」となり、「localization (地域化
CakePHP 概要 CakePHP はウェブ開発を単純に簡単にできるように開発されました。 オールインワンの ツールボックスは色々なパーツが一緒に動いたり、バラバラに動いたりできるようにします。 この概要の目的は、CakePHP の一般的なコンセプトとそのコンセプトがどのように CakePHP の中で働くのかを紹介することです。 プロジェクトをすぐに始めたいなら、 チュートリアルから始める か 直接ドキュメントを見て下さい 。 設定より規約 CakePHP は基礎的な構造をクラス名、ファイル名、DB のテーブル名や他の規約から決定します。 規約を学ぶことで、不必要な設定や他の一般的なアプリと同じ構造をいちいち書かなくて済むので、 簡単に色々なプロジェクトを進められます。この 規約 は、 いろいろな CakePHP で使う規約をカバーしています。 モデル層 モデル層はビジネスロジック
Inflector class Inflector Inflector は文字列の複数形や大文字への変換を取り扱うクラスです。 Inflector のメソッドは通常では静的にアクセスします。 例: Inflector::pluralize('example') は "examples" を返します。 inflector.cakephp.org にてオンライン上で変換を試すことができます。 static Inflector::pluralize($singular) 入力: Apple, Orange, Person, Man出力: Apples, Oranges, People, Men
クイックツアー ここでは、 CakePHP の最も一般的なルーティングの方法について例を出して説明します。 ランディングページとして何かを表示したい時がよくあるでしょう。そのときは、 routes.php ファイルに以下を加えます。 : use Cake\Routing\Router; // スコープ付きルートビルダーを使用。 Router::scope('/', function ($routes) { $routes->connect('/', ['controller' => 'Articles', 'action' => 'index']); }); // static メソッドを使用。 Router::connect('/', ['controller' => 'Articles', 'action' => 'index']); Router はルーティングするための2つのイン
クエリービルダー class Cake\ORM\Query ORM のクエリービルダーにより簡単に流れるようなインターフェイスを使ってクエリーを作り、 実行することができます。クエリーを組み立てることで、 union やサブクエリーを使った 高度なクエリーも簡単に作成することができます。 クエリービルダーは裏側で PDO プリペアードステートメント(prepared statement)を使うことで、 SQL インジェクション攻撃から守っています。 クエリーオブジェクト Query オブジェクトを作成するもっとも簡単な方法は Table オブジェクトから find() を使うことです。このメソッドは完結していない状態のクエリーを返し、このクエリーは変更可能です。 必要なら、テーブルのコネクションオブジェクトも使うことで、ORM 機能を含まない、 より低い層のクエリービルダーにアクセスす
データベースの基本 CakePHP データベースアクセス層は、リレーショナルデータベースを扱うほとんどの面を 抽象化して、サーバーコネクションの保持、クエリーの生成、SQL インジェクションの防止、 スキーマチェックと変更、デバッグとデータベースに送信したクエリーのプロファイリング などの支援を提供します。 クイックツアー この章で説明する機能は、下位レベルのデータベースアクセス API でできることを説明します。 もし ORM についてもっと詳細に知りたい場合は、 クエリービルダー や テーブルオブジェクト のセクションを参照してください。 データベース接続を作る一番簡単な方法は、 DSN 文字列を使います。 : use Cake\Datasource\ConnectionManager; $dsn = 'mysql://root:password@localhost/my_data
エンティティー class Cake\ORM\Entity テーブルオブジェクト がオブジェクトのコレクションへのアクセスを表し、提供するのに対し、 エンティティーは個々の行やドメインオブジェクトを表します。エンティティーは保持するデータにアクセスして 操作するための永続的なプロパティーとメソッドを保有しています。 CakePHP でテーブルオブジェクトの find() を使うたびにエンティティーが作られます。 エンティティークラスの生成 CakePHP の ORM を使うためにエンティティークラスを生成する必要はありません。 しかし、使用するエンティティーでロジックをカスタマイズしたいなら、クラスを作る必要があります。 慣例通りなら src/Model/Entity/ にクラスが存在しています。 もし、 articles テーブルが存在するなら、以下のエンティティーが作れます。 :
データの取り出しと結果セット class Cake\ORM\Table テーブルオブジェクトが「リポジトリー」やオブジェクトのコレクション周りの抽象化を提供してくれますので、 クエリーを実行した際には「エンティティー」オブジェクトとして個々のレコードを取得することができます。 このセクションではエンティティーを検索したりロードしたりする様々な方法について説明します。 詳細は エンティティー セクションをご覧ください。 クエリーのデバッグと結果セット ORM はいまや、コレクションとエンティティーを返しますので、それらのオブジェクトをデバッグすることは以前の CakePHP よりも複雑になりえます。いまでは、様々な方法で ORM が返すデータを調査する方法が存在します。 debug($query) SQL とバインドパラメーターが表示されます。結果は表示されません。sql($query)
プラグイン CakePHP では、コントローラー・モデル・ビューの組み合わせを設定し、 他の CakePHP アプリケーションで使用できるよう事前にパッケージ化された アプリケーションプラグインとしてリリースできます。あなたのアプリケーションの1つに、 素敵なユーザー管理モジュールやシンプルなブログやウェブサービスモジュールを作成したら、 CakePHP プラグインとしてパッケージ化してみませんか?そうすれば、他のアプリケーションで 再利用したり、コミュニティーで共有したりすることができます! CakePHP プラグインは、ホストアプリケーション自身とは基本的に分離されており、 一般的にきちんとパッケージ化され、他のアプリケーションではほとんど手間をかけずに 再利用できる明確な機能を提供します。アプリケーションとプラグインは、それぞれの空間で動作しますが、 アプリケーションの設定によって
Request & Response Objects The request and response objects provide an abstraction around HTTP requests and responses. The request object in CakePHP allows you to introspect an incoming request, while the response object allows you to effortlessly create HTTP responses from your controllers. Request class Cake\Http\ServerRequest ServerRequest is the default request object used in CakePHP. It cen
インストール CakePHP は素早く簡単にインストールできます。 最小構成で必要なものは、ウェブサーバーと CakePHP のコピー、それだけです! 本項では主に(最も一般的である) Apache でのセットアップに主眼を置いていますが、 CakePHP は nginx や lighttpd や Microsoft IIS のような様々なウェブサーバーで動きます。 システム要件 HTTP サーバー。例: Apache。mod_rewrite が推奨されますが、必須ではありません。PHP 5.6 以上 (PHP 7.4 も含む) - mbstring PHP 拡張 - intl PHP 拡張 - simplexml PHP 拡張 NOTE XAMPP / WAMP のいずれでも、mbstring 拡張が初期インストール状態で 動きます。 XAMPP では intl 拡張は同梱されていま
Installation CakePHP has a few system requirements: HTTP Server. For example: Apache. Having mod_rewrite is preferred, but by no means required. You can also use nginx, or Microsoft IIS if you prefer.Minimum PHP 5.6 (7.4 supported). - mbstring PHP extension - intl PHP extension - simplexml PHP extension - PDO PHP extension NOTE In XAMPP, intl extension is included but you have to uncomment extens
Released under the MIT License. Copyright © Cake Software Foundation, Inc. All rights reserved.
ブックマークチュートリアル このチュートリアルは簡単なブックマークのためのアプリケーション (bookmarker) を作ります。 はじめに CakePHP のインストールを行い、データベースの作成、 そしてアプリケーションを素早く仕上げるための CakePHP が提供するツールを使います。 必要なもの: データベースサーバー。このチュートリアルでは MySQL サーバーを使います。 データベースを作成するための SQL の知識が必要です。CakePHP は、それを前提としています。 MySQL を使用するとき、 PHP で pdo_mysql が有効になっていることを確認してください。基礎的な PHP の知識。始める前に、最新の PHP バージョンであることを確認してください。 最低でも PHP 5.6 (CLI) 以上をインストールしてください。 あなたのウェブサーバーの PHP バ
テスト CakePHP はテストの包括的なサポートが組込まれています。CakePHP は PHPUnit のための統合が付属しています。PHPUnit が提供する機能に加えて、CakePHP は簡単にテストするために いくつかの追加機能を提供しています。このセクションでは、PHPUnit のインストールからユニットテストの はじめ方、そして、CakePHP が提供する拡張機能について説明します。 PHPUnit のインストール CakePHP のテストフレームワークは、PHPUnit を基礎としています。PHPUnit は、PHP での ユニットテストのためのデファクトスタンダードです。それはあなたが思い通りのコードを確実に書くための、 深遠で強力な機能を提供します。PHPUnit は PHAR パッケージ や Composer のいずれかを使用してを介してインストールすることができま
function __d(string $domain, string $msg, mixed $args = null) メッセージを一つ取得するために、現在のドメインを変更することが可能です。 プラグインを国際化するときに便利です: echo __d('PluginName', 'This is my plugin'); function __dn(string $domain, string $singular, string $plural, integer $count, mixed $args = null) 複数形のメッセージを一つ取得するために、現在のドメインを変更することが可能です。 $domain でドメインを指定し、 $count の数を数え、 $singular と $plural に基いて複数形を正しく処理したメッセージを返します。 function __dx(s
CakeEmail class CakeEmail(mixed $config = null) CakeEmail は、メール送信の新しいクラスです。このクラスを使うと、アプリケーションの 任意の場所からメールを送信できます。コントローラの中で EmailComponent を使うことに加えて、 シェルやモデルからもメール送信できます。 このクラスは、 EmailComponent を置き換えるもので、より柔軟にメール送信できます。 例えば、既存の SMTP や Mail トランスポートの代わりにメールを送信するための独自のトランスポートを 作成することができます。 基本的な使い方 まず最初に、 App::uses() を使って、クラスがロードできるようにします。 :
This document is for a version of CakePHP that is no longer supported. Please upgrade to a newer release! CakeEmail¶ class CakeEmail(mixed $config = null)¶ CakeEmail は、メール送信の新しいクラスです。このクラスを使うと、アプリケーションの 任意の場所からメールを送信できます。コントローラの中で EmailComponent を使うことに加えて、 シェルやモデルからもメール送信できます。 このクラスは、 EmailComponent を置き換えるもので、より柔軟にメール送信できます。 例えば、既存の SMTP や Mail トランスポートの代わりにメールを送信するための独自のトランスポートを 作成することができます。 基本的な使
ページ制御 class PaginatorComponent(ComponentCollection $collection, array $settings = array()) 柔軟で、かつユーザーにやさしいウェブアプリを作ろうとすると、 まず障害となるのが直感的なユーザーインターフェースのデザインです。 多くのアプリケーションは、そのサイズと複雑さが加速度的に増加してきており、 デザイナーとプログラマーは何十万ものレコードをどうやって表示すればいいか、 お互いに頭を抱えています。リファクタリングするには時間がかかりますし、 パフォーマンスやユーザーの満足度が損なわれる場合があります。 大量のレコードをページごとに表示するのは、 どのアプリケーションでも常にネックになる部分であり、 開発者の頭を悩ませて来ました。CakePHP では、 データのページ制御のための簡単かつ簡潔な方法を提
エラーハンドリング 2.0 で Object::cakeError() は削除されました。代わりに、たくさんの例外が追加されました。 かつてはすべてのコアクラスが cakeError を呼んでいましたが、いまでは例外を投げています。 あなたはアプリケーションコードの中でエラーをハンドルすることも、それを処理するための例外ハンドラを 構築することもできるのです。 CakePHP 2.0 ではエラーや例外をハンドルするための制御がかつてないほど数多く存在しています。 Configure を使って、好きなメソッドをデフォルトのエラーハンドラや例外ハンドラとして 設定しておくことができます。 エラーの設定 エラーの設定はあなたのアプリケーションの app/Config/core.php の中で行われています。 あなたのアプリケーションが PHP エラー(例外については 例外(Exception
This document is for a version of CakePHP that is no longer supported. Please upgrade to a newer release! Bookmarker Tutorial¶ This tutorial will walk you through the creation of a simple bookmarking application (bookmarker). To start with, we’ll be installing CakePHP, creating our database, and using the tools CakePHP provides to get our application up fast. Here’s what you’ll need: A database se
データバリデーション データバリデーションは、どのようなアプリケーションにおいても重要な部分です。 なぜなら、これはモデル内のデータがアプリケーションのビジネスルールに 則していることを保証する仕組みだからです。 たとえば、パスワードの長さが8文字以上あることや、 ユーザ名がユニークであることを保証したい場合などが考えられます。 バリデーションルールを定義することで、フォームの扱いが非常に楽になります。 データバリデーションのプロセスには、いろいろと異なった側面があります。 そのうちこのセクションで扱うのは、モデルに特化した部分です。基本的には、 あなたのモデルで save() メソッドをコールした時に起こる内容です。 FormHelper には、バリデーションエラーの 表示がどのように処理されるのかについての記載があります。 データバリデーションへの最初のステップは、 まずモデルの中に
次のページ
このページを最初にブックマークしてみませんか?
『CakePHP 5 Documentation - Build Better Web Applications Faster | CakePHP』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く