サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
book.cakephp.org
ようこそ¶ CakePHP 3 は、 PHP 7.4 (最小は PHP 5.6) 上で動作するウェブ開発フレームワークです。 CakePHP 3 の基礎に入門するには CakePHP 概要 を読んでください。 CakePHP クックブックは、オープンに開発されている、コミュニティーで編集可能なドキュメントのプロジェクトです。 ドキュメンテーションの品質、正当性、正確性の高さを維持することを期待しています。 右端に固定された鉛筆アイコンボタンに注目してください。 このボタンは、あなたがドキュメンテーションの追加・削除・修正などの貢献が簡単にできるように、 該当ページの GitHub のオンラインエディターへ誘導します。 クックブックがどこででも読める どこでも CakePHP のレシピをお楽しみ頂けます。PDF と EPUB をご用意しましたので、 多くのデバイス上でオフラインでドキュメント
インストール¶ CakePHP は素早く簡単にインストールできます。 最小構成で必要なものは、ウェブサーバーと CakePHP のコピー、それだけです! 本項では主に(最も一般的である) Apache でのセットアップに主眼を置いていますが、 CakePHP は nginx や lighttpd や Microsoft IIS のような様々なウェブサーバーで動きます。 システム要件¶ HTTP サーバー。例: Apache。mod_rewrite が推奨されますが、必須ではありません。 PHP 5.6 以上 (PHP 7.4 も含む) mbstring PHP 拡張 intl PHP 拡張 simplexml PHP 拡張 注釈 XAMPP / WAMP のいずれでも、mbstring 拡張が初期インストール状態で 動きます。 XAMPP では intl 拡張は同梱されていますが、 php
$validator ->requirePresence('title') ->notEmpty('title', 'このフィールドに入力してください') ->add('title', [ 'length' => [ 'rule' => ['minLength', 10], 'message' => 'タイトルは 10 文字以上必要です', ] ]) ->allowEmpty('published') ->add('published', 'boolean', [ 'rule' => 'boolean' ]) ->requirePresence('body') ->add('body', 'length', [ 'rule' => ['minLength', 50], 'message' => '記事は中身のある本文を持っていなければなりません。', ]); 上記例に見られるように、バリデ
This document is for a version of CakePHP that receives security updates only. Please upgrade to a newer release! CakePHP の規約¶ 私たちは「設定より規約」(convention over configuration) という考え方に賛成です。 CakePHP の規約を習得するには少し時間がかかりますが、長い目で見ると時間を節約していることになります。 規約に従うと自由に使える機能が増えますし、設定ファイルを調べまわってメンテナンスするという悪夢からも 開放されます。 規約によって開発が統一感を持つため、開発者が加わってすぐに手伝うということがやりやすく なります。 コントローラーの規約¶ コントローラーのクラス名は複数形でパスカルケースで、最後に Controller
This document is for a version of CakePHP that is no longer supported. Please upgrade to a newer release! ルーティング¶ ルーティングはURLをどのコントローラーのアクションと関連付けてマッピングするか決める機能です。 これはCakePHP でURLをより細かく柔軟に設定できるようにするために作られました。 Apache の mod_rewrite はルーティングのために必要でないです。しかし、これはアドレスバーを綺麗に見せます。 CakePHP でのルーティングはまた 配列による引数を文字列によるURLに変換するリバースルーティングも含みます。 リバースルーティングによって、簡単にアプリのURLの構造を全部のコードの書き直しをせずにリファクタリングできます。 ルーティングの設定¶ ル
セキュリティユーティリティ¶ class Cake\Utility\Security¶ security library は、 データのハッシュ化や暗号化などのメソッドなどの基本的なセキュリティ分野を取り扱います。 データの暗号化と復号¶ static Cake\Utility\Security::encrypt($text, $key, $hmacSalt = null)¶ static Cake\Utility\Security::decrypt($cipher, $key, $hmacSalt = null)¶ $text の暗号化には AES-256 を利用します。 $key は例えば「よいパスワード」のように、 沢山の分散された値であるべきです。返却される結果は HMAC チェックサム(checksum)つきの 暗号化された値となります。 このメソッドは、 openssl か m
データの保存¶ class Cake\ORM\Table データを読み出した 後は、 おそらく更新を行ってその変更を保存したいでしょう。 データ保存の概要¶ アプリケーションは通常、データが保存されるいくつかの方法を持っています。 最初のひとつは言うまでもなくウェブフォームを通して、 また他の方法としてはコード中で直接データを生成または変更して、 データベースに送られるようにすることです。 データの挿入¶ データベースにデータを挿入する最も簡単な方法は、新しいエンティティーを作成して それを Table クラスの save() に渡すことです。 use Cake\ORM\TableRegistry; // Prior to 3.6 use TableRegistry::get('Articles') $articlesTable = TableRegistry::getTableLocat
This document is for a version of CakePHP that receives security updates only. Please upgrade to a newer release! エラーと例外の処理¶ CakePHP アプリケーションには、エラー処理と例外処理が用意されています。 PHP エラーはトラップされ、表示またはログに記録されます。 キャッチされなかった例外はエラーページに自動的にレンダリングされます。 エラーと例外の設定¶ エラーの設定はアプリケーションの config/app.php ファイル中で行われます。デフォルトでは、 CakePHP は PHP エラーと例外の両方を処理するために Cake\Error\ErrorHandler を使います。 エラーの設定を使用すると、アプリケーションのエラー処理をカスタマイズできます。 次
クイックスタートガイド¶ CakePHP を学ぶ最も良い方法はなにか作ってみることです。 簡単なコンテンツ管理アプリケーションから作ることを始めましょう。 コンテンツ管理チュートリアル¶ このチュートリアルは簡単な CMS アプリケーションを作ります。 はじめに CakePHP のインストールを行い、データベースの作成、 そしてアプリケーションを素早く仕上げるための CakePHP が提供するツールを使います。 必要なもの: データベースサーバー。このチュートリアルでは MySQL サーバーを使います。 データベースを作成するための SQL の知識が必要です。CakePHP は、それを前提としています。 MySQL を使用するとき、 PHP で pdo_mysql が有効になっていることを確認してください。 基礎的な PHP の知識。 始める前に、最新の 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 static Inflector::camelize($underscored)¶ 入力: Apple_pie, some_thing, people_person 出力: ApplePie, S
ルーティング¶ class Cake\Routing\Router¶ ルーティングは URL とコントローラーのアクションをマップするツールを提供します。 ルートを設定することで、アプリケーションの実装方法を URL の構造から分離できます。 CakePHP でのルーティングはまた パラメーターの配列を URL 文字列に変換する リバースルーティングというアイディアも含まれます。リバースルーティングを使用することによって、 アプリケーションの URL の構造を全部のコードの書き直しをせずに再調整できます。 クイックツアー¶ ここでは、 CakePHP の最も一般的なルーティングの方法について例を出して説明します。 ランディングページとして何かを表示したい時がよくあるでしょう。そのときは、 routes.php ファイルに以下を加えます。 use Cake\Routing\Router; /
クエリービルダー¶ 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_databa
エンティティー¶ class Cake\ORM\Entity¶ テーブルオブジェクト がオブジェクトのコレクションへのアクセスを表し、提供するのに対し、 エンティティーは個々の行やドメインオブジェクトを表します。エンティティーは保持するデータにアクセスして 操作するための永続的なプロパティーとメソッドを保有しています。 CakePHP でテーブルオブジェクトの find() を使うたびにエンティティーが作られます。 エンティティークラスの生成¶ CakePHP の ORM を使うためにエンティティークラスを生成する必要はありません。 しかし、使用するエンティティーでロジックをカスタマイズしたいなら、クラスを作る必要があります。 慣例通りなら src/Model/Entity/ にクラスが存在しています。 もし、 articles テーブルが存在するなら、以下のエンティティーが作れます。 /
This document is for a version of CakePHP that receives security updates only. Please upgrade to a newer release! データの取り出しと結果セット¶ class Cake\ORM\Table¶ テーブルオブジェクトが「リポジトリー」やオブジェクトのコレクション周りの抽象化を提供してくれますので、 クエリーを実行した際には「エンティティー」オブジェクトとして個々のレコードを取得することができます。 このセクションではエンティティーを検索したりロードしたりする様々な方法について説明します。 詳細は エンティティー セクションをご覧ください。 クエリーのデバッグと結果セット¶ ORM はいまや、コレクションとエンティティーを返しますので、それらのオブジェクトをデバッグすることは以前の C
プラグイン¶ CakePHP では、コントローラー・モデル・ビューの組み合わせを設定し、 他の CakePHP アプリケーションで使用できるよう事前にパッケージ化された アプリケーションプラグインとしてリリースできます。あなたのアプリケーションの1つに、 素敵なユーザー管理モジュールやシンプルなブログやウェブサービスモジュールを作成したら、 CakePHP プラグインとしてパッケージ化してみませんか?そうすれば、他のアプリケーションで 再利用したり、コミュニティーで共有したりすることができます! CakePHP プラグインは、ホストアプリケーション自身とは基本的に分離されており、 一般的にきちんとパッケージ化され、他のアプリケーションではほとんど手間をかけずに 再利用できる明確な機能を提供します。アプリケーションとプラグインは、それぞれの空間で動作しますが、 アプリケーションの設定によって
This document is for a version of CakePHP that receives security updates only. Please upgrade to a newer release! 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 contr
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 extension=php
This document is for a version of CakePHP that receives security updates only. Please upgrade to a newer release!
ブックマークチュートリアル¶ このチュートリアルは簡単なブックマークのためのアプリケーション (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 のいずれかを使用してを介してインストールすることができま
定数および関数¶ CakePHP を使った皆さんの日常のほとんどの業務ではコアクラスやメソッドを用いることになるでしょうが、 ちょっとした役に立つ便利なグローバル関数も CakePHP にはたくさんあります。この関数のほとんどは CakePHP のクラスと一緒に使うためのもの(モデルやコンポーネントクラスのローディングなど)ですが、 他の多くは、配列や文字列の扱いを少し楽にしてくれるものです。 また、CakePHP のアプリケーションで利用可能な定数も同時におさえておきましょう。 これらの定数を用いることはよりスムースなアップグレードの助けになるだけでなく、 CakePHP アプリケーション内の特定のファイルやディレクトリーを指し示す便利なやり方でもあります。 グローバル関数¶ 以下、CakePHP の使用可能なグローバル関数です。その多くは、デバッグしたり内容を翻訳したりといった、 機能
CakeEmail¶ class CakeEmail(mixed $config = null)¶ CakeEmail は、メール送信の新しいクラスです。このクラスを使うと、アプリケーションの 任意の場所からメールを送信できます。コントローラの中で EmailComponent を使うことに加えて、 シェルやモデルからもメール送信できます。 このクラスは、 EmailComponent を置き換えるもので、より柔軟にメール送信できます。 例えば、既存の SMTP や Mail トランスポートの代わりにメールを送信するための独自のトランスポートを 作成することができます。 基本的な使い方¶ まず最初に、 App::uses() を使って、クラスがロードできるようにします。
ページ制御¶ class PaginatorComponent(ComponentCollection $collection, array $settings = array())¶ 柔軟で、かつユーザーにやさしいウェブアプリを作ろうとすると、 まず障害となるのが直感的なユーザーインターフェースのデザインです。 多くのアプリケーションは、そのサイズと複雑さが加速度的に増加してきており、 デザイナーとプログラマーは何十万ものレコードをどうやって表示すればいいか、 お互いに頭を抱えています。リファクタリングするには時間がかかりますし、 パフォーマンスやユーザーの満足度が損なわれる場合があります。 大量のレコードをページごとに表示するのは、 どのアプリケーションでも常にネックになる部分であり、 開発者の頭を悩ませて来ました。CakePHP では、 データのページ制御のための簡単かつ簡潔な方法を
次のページ
このページを最初にブックマークしてみませんか?
『Welcome - 5.x』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く