タグ

ブックマーク / book.cakephp.org (87)

  • URLリライティング - 2.x

    URLリライティング¶ Apache と mod_rewrite (と.htaccess)¶ CakePHP は、展開した状態では mod_rewrite を使用するようになっており、 自分のシステムでうまく動作するまで苦労するユーザもいます。 ここでは、正しく動作させるために行うことをいくつか示します。まず始めに httpd.conf を見てください(ユーザーやサイト独自の httpd.conf ではなく、 必ずシステムの httpd.conf を編集してください)。 これらのファイルは、ディストリビューションや Apache のバージョンによって異なります。 詳しくは https://wiki.apache.org/httpd/DistrosDefaultLayout を参照してください。 .htaccess のオーバーライドが許可されていること、正確な DocumentRoot に対

  • アクセス制御リスト - 2.x

    ちょっと見た限りでは、これでこのシステムは問題なく動くように 見えますよね。セキュリティを維持しながら任務の割り当てが行われ (指輪にアクセスできるのは Frodo だけ)、かつ事故を未然に防ぐ ようになっています(ホビット族を塩漬け豚や武器に近づけない)。 これで十分細かく分けられ、かつ読みやすい、ですよね? このように小規模なシステムなら、マトリックスによる設定でも うまくいくでしょう。しかし成長真っ只中のシステムや、大量の リソース(ACO)とユーザ(ARO)を持つシステムだと、テーブルが すぐに破綻してしまうでしょう。戦場の野営地が何百箇所もあって、 それらを個別に管理することを考えてみてください。マトリックス 方式のもう一つの欠点としては、ユーザを束ねる論理的なグループ を作ったり、それらの論理グループをベースとした(階層的な) ユーザグループに対して、パーミッションの変更を再帰

    kathew
    kathew 2020/02/08
    パーミッションをチェックする関数が何かと便利
  • ヘルパー - 3.10

    ヘルパー¶ ヘルパーはアプリケーションのプレゼンテーション層のためのコンポーネントのようなクラスです。 多くのビューやエレメント、レイアウトで共有される表示ロジックを含んでいます。 この章では、ヘルパーを設定する方法を紹介します。ヘルパーの読み込み方法、 それらのヘルパーの使い方、独自のヘルパーを作成するための簡単な手順を概説します。 CakePHP にはビューの作成に役立つ多くのヘルパーがあります。それらは、整形式のマークアップ (フォーム含む)、テキスト、時間、数値の整形に役立ったり、 Ajax 機能 をスピードアップさせたりします。 CakePHP のヘルパーに関する詳細については、各ヘルパーの章をご覧ください。

  • Bake の拡張 - 1.x

    Bake の拡張¶ Bake は、アプリケーションやプラグインが基機能に対して変更または追加を可能にする 拡張可能なアーキテクチャーを備えています。Bake は、 Twig テンプレートエンジンを使用したビュークラスを利用します。 Bake イベント¶ BakeView は、ビュークラスとして、他のビュークラスと同様のイベントに加え、 1つの特別な初期化 (initialize) イベントを発します。しかし、一方で標準ビュークラスは、 イベントのプレフィックス "View." を使用しますが、 BakeView は、 イベントのプレフィックス "Bake." を使用しています。 初期化イベントは、すべての bake の出力に対して変更を加えるために使用できます。 例えば、bake ビュークラスに他のヘルパーを追加するためにこのイベントは使用されます。 <?php // config/bo

  • コントローラー - 3.10

    This document is for a version of CakePHP that receives security updates only. Please upgrade to a newer release! コントローラー¶ class Cake\Controller\Controller¶ コントローラー (Controller) は MVC の 'C' です。ルーティングが適用されて適切なコントローラーが見つかった後、 コントローラーのアクションが呼ばれます。コントローラーはリクエストを解釈して、適切なモデルが 呼ばれるのを確認して、正しいレスポンスまたはビューを書き出します。コントローラーはモデルとビューの 中間層とみなすことができます。コントローラーは薄くシンプルに、モデルを大きくしましょう。 そうすれば、あなたの書いたコードはより簡単に再利用できるようになり、

  • データの削除 - 3.10

    データの削除¶ class Cake\ORM\Table Cake\ORM\Table::delete(Entity $entity, $options = [])¶ 読み込んだエンティティーは、テーブル来の削除メソッドを呼びだすことによって削除することが出来ます。 エンティティー削除時には、いくつかのことが起こります。 削除ルール が適用されます。 ルールのチェックに失敗した場合、 削除は中止されます。 Model.beforeDelete イベントが起動されます。このイベントが停止した場合、削除は失敗し、 イベントの戻り値が返されます。 エンティティーが削除されます。 全ての依存関係先が削除されます。依存関係先がエンティティーとして削除されるとき、 追加のイベントが起動されます。 BelongsToMany アソシエーション用の全ての結合テーブルのレコードが削除されます。 Model

  • エンティティー - 3.10

    エンティティー¶ class Cake\ORM\Entity¶ テーブルオブジェクト がオブジェクトのコレクションへのアクセスを表し、提供するのに対し、 エンティティーは個々の行やドメインオブジェクトを表します。エンティティーは保持するデータにアクセスして 操作するための永続的なプロパティーとメソッドを保有しています。 CakePHP でテーブルオブジェクトの find() を使うたびにエンティティーが作られます。 エンティティークラスの生成¶ CakePHPORM を使うためにエンティティークラスを生成する必要はありません。 しかし、使用するエンティティーでロジックをカスタマイズしたいなら、クラスを作る必要があります。 慣例通りなら src/Model/Entity/ にクラスが存在しています。 もし、 articles テーブルが存在するなら、以下のエンティティーが作れます。 /

  • テーブルオブジェクト - 3.10

    テーブルオブジェクト¶ class Cake\ORM\Table テーブルオブジェクトは特定のテーブルに保存されたエンティティーのコレクションへのアクセスを提供します。 それぞれのテーブルは、与えられたテーブルによって繋がれた関連付けられたテーブルクラスを持ちます。 もし、与えられたテーブルの振る舞いをカスタマイズする必要ないなら、CakePHP はテーブルのインスタンスを 作ります。 テーブルオブジェクトと ORM を作る前に データベースへの接続 がなされているか確かめましょう。 基的な使い方¶ まずはじめにテーブルクラスを作ってください。これらのクラスは src/Model/Table に作ります。 テーブルは、リレーショナルデータベースに特化したモデルコレクションです。 そして、CakePHPORM の中で、あなたのデータベースへの主なインターフェースです。 最も基的なテ

  • ビヘイビアー - 3.10

    ビヘイビアー¶ ビヘイビアーは、モデル層ロジックの水平再利用を整理して有効にする方法です。 概念的にはトレイトに似ています。ただし、ビヘイビアーは別個のクラスとして実装されます。 これにより、モデルが発行するライフサイクルコールバックにフックして、 トレイトのような機能を提供することができます。 ビヘイビアーは、多くのモデルで共通の振る舞いをまとめる便利な方法を提供します。 たとえば、CakePHP には TimestampBehavior が含まれています。 多くのモデルはタイムスタンプフィールドを必要とし、これらのフィールドを管理するロジックは いずれのモデルにも固有ではありません。 ビヘイビアーの利用が最適なのはこの種のシナリオです。 ビヘイビアーの利用¶ ビヘイビアーは、テーブルクラスにまたがって関連するロジックの再利用可能な部品を作成する 簡単な方法を提供します。なぜビヘイビアー

  • Timestamp - 3.10

    Timestamp¶ class Cake\ORM\Behavior\TimestampBehavior¶ Timestamp ビヘイビアーは、モデルのイベントのたびにテーブルオブジェクトのタイムスタンプを更新します。 これは、主に created や modified フィールドにデータを投入するために使用されます。 けれども、設定を追加すると、任意の timestamp と datetime カラムを任意のイベントで更新することができます。 一般的な使い方¶ あなたは他のビヘイビアーと同様に、timestamp ビヘイビアーを以下の様に有効にできます。 class ArticlesTable extends Table { public function initialize(array $config) { $this->addBehavior('Timestamp'); } } デ

  • クイックスタートガイド - 3.10

    クイックスタートガイド¶ CakePHP を学ぶ最も良い方法はなにか作ってみることです。 簡単なコンテンツ管理アプリケーションから作ることを始めましょう。 コンテンツ管理チュートリアル¶ このチュートリアルは簡単な CMS アプリケーションを作ります。 はじめに CakePHP のインストールを行い、データベースの作成、 そしてアプリケーションを素早く仕上げるための CakePHP が提供するツールを使います。 必要なもの: データベースサーバー。このチュートリアルでは MySQL サーバーを使います。 データベースを作成するための SQL の知識が必要です。CakePHP は、それを前提としています。 MySQL を使用するとき、 PHP で pdo_mysql が有効になっていることを確認してください。 基礎的な PHP の知識。 始める前に、最新の PHP バージョンであることを確認

  • 国際化と地域化 - 3.10

    国際化と地域化¶ アプリケーションをより多くのユーザーに届けるのに最も良い方法の一つは、 複数の言語に対応することです。これは、しばしば気が遠くなるような作業になります。 しかし、CakePHP の国際化と地域化の機能は、これを容易にします。 まずは、いくつかの専門用語について理解しましょう。 国際化 (internationalization) とは、あるアプリケーションを地域化できるようにすることです。 地域化 (localization) とは、あるアプリケーションを特定の言語や文化での表現( すなわちロケール (locale)) に適応させることです。国際化と地域化は、それぞれ「i18n」と 「l10n」というように省略されます。「internationalization (国際化)」の最初と最後の文字の間に 18文字あるから「i18n」となり、「localization (地域化

  • 定数および関数 - 3.10

    定数および関数¶ CakePHP を使った皆さんの日常のほとんどの業務ではコアクラスやメソッドを用いることになるでしょうが、 ちょっとした役に立つ便利なグローバル関数も CakePHP にはたくさんあります。この関数のほとんどは CakePHP のクラスと一緒に使うためのもの(モデルやコンポーネントクラスのローディングなど)ですが、 他の多くは、配列や文字列の扱いを少し楽にしてくれるものです。 また、CakePHP のアプリケーションで利用可能な定数も同時におさえておきましょう。 これらの定数を用いることはよりスムースなアップグレードの助けになるだけでなく、 CakePHP アプリケーション内の特定のファイルやディレクトリーを指し示す便利なやり方でもあります。 グローバル関数¶ 以下、CakePHP の使用可能なグローバル関数です。その多くは、デバッグしたり内容を翻訳したりといった、 機能

  • Url - 3.10

    Url¶ class Cake\View\Helper\UrlHelper(View $view, array $config = [])¶ UrlHelper は他のヘルパーから URL を生成することが容易になります。 アプリケーションのヘルパーでコアヘルパーをオーバーライドすることによって URL の生成方法を カスタマイズする単一の場所を提供します。このやり方は ヘルパーの別名 セクションをご覧ください。 URL の生成¶ Cake\View\Helper\UrlHelper::build(mixed $url = null, boolean|array $full = false)¶ コントローラーとアクションの組み合わせを指定することで URL を生成して返します。 $url が空の場合、 REQUEST_URI を返します。そうでない場合、 コントローラーとアクションの組み合

  • クエリービルダー - 3.10

    クエリービルダー¶ class Cake\ORM\Query¶ ORM のクエリービルダーにより簡単に流れるようなインターフェイスを使ってクエリーを作り、 実行することができます。クエリーを組み立てることで、 union やサブクエリーを使った 高度なクエリーも簡単に作成することができます。 クエリービルダーは裏側で PDO プリペアードステートメント(prepared statement)を使うことで、 SQL インジェクション攻撃から守っています。 クエリーオブジェクト¶ Query オブジェクトを作成するもっとも簡単な方法は Table オブジェクトから find() を使うことです。このメソッドは完結していない状態のクエリーを返し、このクエリーは変更可能です。 必要なら、テーブルのコネクションオブジェクトも使うことで、ORM 機能を含まない、 より低い層のクエリービルダーにアクセス

  • Form - 3.7

    Form¶ class Cake\View\Helper\FormHelper(View $view, array $config = [])¶ FormHelper は、フォーム作成時の力作業のほとんどを代行してくれます。 FormHelper は、フォームを素早く作成し、検証、再配置、レイアウトを効率化します。 FormHelper は、柔軟でもあります。通常は規約に沿ってほとんどのことをやってくれますが、 特定のメソッドを使って必要な機能だけを使うこともできます。 フォームの開始¶ Cake\View\Helper\FormHelper::create(mixed $context = null, array $options = [])¶ $context - フォームが定義されているコンテキスト。 ORM エンティティー、 ORM 結果セット、 メタデータの配列もしくは fals

  • データの取り出しと結果セット - 3.10

    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

  • ビュー - 3.10

    ビュー¶ class Cake\View\View¶ ビュー (View) は MVC の V です。ビューはリクエストに対する出力を生成する役割を担います。 大抵の場合、これは HTML フォームや XML、JSON などですが、ファイルのストリーミングや、 ユーザーがダウンロード可能な PDF の生成もビューレイヤーの役割となります。 CakePHP では下記の典型的な描画シナリオに対応するためのいくつかの組み込みのビュークラスを 用意しています。 XML や JSON ウェブサービスを作成するには JSON と XML ビュー を利用できます。 保護されたファイルや動的に生成されたファイルを提供するには ファイルの送信 を利用できます。 複数テーマのビューを作成するには テーマ を利用できます。 App ビュー¶ AppView はアプリケーションの既定のビュークラスです。 AppV

  • プラグイン - 3.7

    プラグイン¶ CakePHP では、コントローラー・モデル・ビューの組み合わせを設定し、 他の CakePHP アプリケーションで使用できるよう事前にパッケージ化された アプリケーションプラグインとしてリリースできます。あなたのアプリケーションの1つに、 素敵なユーザー管理モジュールやシンプルなブログやウェブサービスモジュールを作成したら、 CakePHP プラグインとしてパッケージ化してみませんか?そうすれば、他のアプリケーションで 再利用したり、コミュニティーで共有したりすることができます! CakePHP プラグインは、ホストアプリケーション自身とは基的に分離されており、 一般的にきちんとパッケージ化され、他のアプリケーションではほとんど手間をかけずに 再利用できる明確な機能を提供します。アプリケーションとプラグインは、それぞれの空間で動作しますが、 アプリケーションの設定によって

  • Bake でコード生成 - 1.x

    Bake でコード生成¶ cake コンソールは、 PHP CLI (command line interface) で実行します。 もしスクリプトの実行に問題があるなら、以下を満たしてください。 PHP CLI がインストールされているか適切なモジュールが有効か確認してください (例:MySQL, intl)。 データベースのホストが 'localhost' で問題があるなら、代わりに '127.0.0.1' を使って下さい。 PHP CLI でこの問題がおこる可能性があります。 使っているコンピューターの設定に応じて、 bin/cake bake で使用する cake bash スクリプトの 実行権限を設定する必要があります。 bake を実行する前にデータベースとの接続を確認しましょう。 bin/cake bake を引数無しで実行すると可能なタスクを表示できます。 Windows