サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
develop.ddo.jp
利用方法 // 呼び出し元のテンプレートと同じモジュールにあるパーシャル呼び出し <?php include_partial('mypartial') ?> // 別のモジュール(other)にあるパーシャルを呼び出し <?php include_partial('other/mypartial') ?> // アプリ直下のtemplatesに配置したテンプレート呼び出し // これをglobalモジュールとします <?php include_partial('global/mypartial') ?> // 変数($nick_name)を渡したい場合 <?php include_partial('mypartial', array('nick_name' => $nick_name)) ?> // これでパーシャル側では下記のように変数が利用できる <?php echo $nick_n
$ ./symfony plugin:install sfTaskExtraPlugin --release=0.0.1 インストールしたプラグインを有効にする class ProjectConfiguration extends sfProjectConfiguration { public function setup() { $this->enablePlugins('sfTaskExtraPlugin'); } } 新しいタスクとしてgenerate:plugin, generate:plugin-module, plugin:packageが追加されました。 $ ./symfony list generate Available tasks for the "generate" namespace: :plugin Generates a new plugin :plugin
symfony1.2でのtipsやメモをまとめていきます。 symfony1.0以前の開発メモについては symfony1.0の開発メモで確認してください。 [定石] symfonyで動きがおかしかったらとりあえずキャッシュを疑い symfony cc を叩きましょう。 memo12 config アプリケーション間で設定を共有する etc autoloadに追加したい symfonyの便利メソッドやクラス form バリデーションのエラーを確認 条件付きvalidator 標準で用意されているwidget sfformの基礎 sfformextraplugin helper view以外でヘルパーを使いたい install php5.2をインストール top doctrine doctrineの初歩 propel top plugins プラグインを作る security 出力エスケープ
このプラグインは日本語(iso-2022-jp)による簡単なメール送信をライブラリに依存せず共通のインターフェースで送信するためのプラグインです。 PHPMailer, Swift Mailer, Qdmailが読み込まれてさえすれば以下の共通のインターフェースで日本語(iso-2022-jp)によるメール送信を行います。 引数で与えた日本語文字列はプラグインによって内部エンコーディングからJISに変換されます。 $mailer = jpMail::create('SwiftMailer'); // このサンプルではSwift Mailerを利用しています。 $mailer->setSubject('メール送信テストです'); $mailer->setSender('from@example.com'); $mailer->addTo(sprintf('%s <%s>', '宛先 太郎',
概要 symfony は sfWebRequest とsfWebResponse オブジェクトを通してクッキーへアクセスを可能とします。これによりとても簡単にクッキーを利用することができ、簡単に永続的なセッションを保存しておくことができます。 クッキーのゲッターとセッター クッキーとはクライアントのコンピューター上に保存されている文字列であり、ウェブアプリケーションによって書き込まれ、同じアプリケーションまたはドメインからのみ読み込むことができます。 symfony において、クッキー用のセッターとゲッターは異なるオブジェクトの関数ですが、同じようなものになっています。クッキーを取得するために、サーバーに送られてきたリクエストを調査するので、sfWebRequest オブジェクトを使います。一方で、クッキーをセットするために、ユーザーにおくられるレスポンスを修正するために、 sfWebRe
概要 パワフルで柔軟性のある symfony のキャッシュシステムは将来のリクエストのために生成された HTML コードの塊、もしくはページ全部すらをも保存することでウェブサイトをスピードアップすることができます。YAML ファイルのおかげで簡単にセットアップでき、キャッシュは簡単なコマンドで消去することもできます。 導入 HTML キャッシュの原理は単純です。つまり、ユーザーに送信された HTML コードの一部分もしくは全体は同様のリクエストのために再利用されることができます。それで、この HTML コードは特別な場所に貯められます。(symfony のキャッシュフォルダ)、その場所はフロントコントローラーがアクションを実行する前に探す場所になります。キャッシュされたバージョンが見つかれば、アクションを実行せずにキャッシュされたものが送信されます。従って、十分処理をスピードアップすること
このプラグインはアドミンジェネレータに確認画面を追加した拡張版ジェネレータクラス(sfPropelAdminGeneratorPlus)と確認画面を含むテーマ(default-plus)を提供します。 プロジェクトルートディレクトリでsymfonyコマンドでプラグインをインストールします。 $ symfony plugin-install http://develop.ddo.jp/symfony/sfPropelAdminGeneratorPlusPlugin-0.0.1.tgz インストール後はプラグインが読み込まれるように、キャッシュをクリアします。 $ symfony cc generator.ymlで使用するクラスとテーマを変更します。classにはsfPropelAdminGeneratorPlusを、themeにはdefault-plusを指定します。 generator
symfony1.0系の記事です。symfony1.1以降では利用方法が変わっているものがあります リクエストに関する内容を保持しているオブジェクト。 アクションからは $sfWebRequestObject = $this->getRequest(); で呼び出せるので $this->getRequest()->hasParameter('hoge'); // アクションでは更に短い構文が用意されてます $this->hasRequestParameter('hoge'); というように利用します。 以下ドキュメントから抜粋
会員のコントロールパネルから「PHPのバージョン選択」メニューからPHP5を選びます。 これだけで、OKのようです。 コンソールからPHPのバージョンを確認してみます。 %php -v PHP 5.2.5 (cgi) (built: Nov 29 2007 12:44:25) Copyright (c) 1997-2007 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies 次にPEARをインストールします。 ローカルにPEARをインストールするためのディレクトリを作ります。好きな名前でいいですが、このメモではlocalというディレクトリ名にしました。 %mkdir ~/local PEARをインストールするためのスクリプトをPEARのサイトから取得し、go-pear.phpという名前で
概要 バックエンドアドミニストレーションはしばしばフロントエンドのアプリケーションで利用されているデータ構造に従って構築されます。そのようなバックエンドは symfony によって作成されることができ、定義されたオブジェクトモデルが提供されます。このように動作するメカニズムはアドミン ジェネレーターと呼ばれています。カスタム設定のシステムを使うための多くの繰り返される作業を自動化します。また、全体的な制御を行うことができ、全ての生成されたコンポーネントと、アプリケーションの見た目や感じをカスタマイズまたは拡張することができます。そして、アドミンジェネレータは完全にあなたの要求にこたえることができないとき、あなた自身のコードをアドミンジェネレータに組み込むするためのツールを提供します。 注意: ダウンロードできるアドミニストレーションの構築の様子を見ることができるスクリーンキャストがあります
このプラグインで日本語環境では一般的なJIS(iso-2022-jp)でのメール送信が簡単に行えます。 symfonyでは日本語でメールを送信することができますが、標準のsfMailクラスで日本語メール(iso-2022-jp)を送信しようとすると、毎回エンコーディングの変換処理を意識しなければなりません。そこで、標準のsfMailと同じ手順でエンコーディング処理まで行ってくれるsfMailクラスの拡張クラスであるjpMailを利用します。
概要 クライアント側での対話、ビジュアル効果の複雑さ、もしくはコミュニケーションの非同期性は web 2.0 アプリケーションにおいては普通のことです。これら全ては Javascript を必要としますが、手でコーディング作業するのはしばしば扱いにくく、デバッグに時間がかかってしまいます。幸運なことに、symfony はテンプレートで使用される一般的な Javascript の使用を自動化してくれます。 導入 ブラウザ間での互換性に欠けている専門的なウェブアプリケーションにおける本格的な利用方法でなければ、Javascript は初心者にとって本質的にはよくないことと考えられてきました。90 年代後半に、'DHTML' は '互換性のために3回書かれた埋め込み javascript を持つ読めない HTML コード' を意味しており、ときには、ちゃんと動作しないダイナミックウェブページを好
概要 symfony での MVC における View 部分の実装はテンプレート、可能であればレイアウトが含まれているテンプレートですが、それを使うことによって行われています。 再利用できるコードがアクションの結果であったり、断片的なものの結果であったり、アプリケーション的なロジックを必要としない場合にスロットにおいてそれらのコードが再利用できます。symfony のコントローラーが実装している命名規則と密接した調和のおかげでテンプレート管理は簡単です。 テンプレート処理 アクションの実行結果は View です。symfony において、View は古典的な PHP ファイルや、テンプレートが他のインターフェースの要素に合うように設定ファイルで記述されたテンプレートの組み合わせです。 以下は典型的な indexSuccess.php というテンプレートです。 <h1>Welcome</h1
概要 フォームのバリデーションはサーバーサイド、クライアントサイドの両方またはどちらかで必要になります。サーバーサイドにおけるバリデーションは義務的なもの- 誤ったデータがスクリプトやデータベースに入らないようにするため -であり、クライアントサイドのバリデーションはユーザーの操作を改善するものではありますが、付随的なものです。symfony は一般的なウェブアプリケーションの開発を早くするために、サーバーサイドのバリデーションを自動化します。 基本例 一般的な問い合わせフォームで、全ての種類のバリデーションではなく、次のようなフィールドを持つフォームをsymfony で開発するときのバリデーションの機能を説明します。 name : 名前 email : メールアドレス age : 年齢 message : 問い合わせ内容 新しく生成した contact モジュールの中で、最初に書かれるべ
symfonyとはPHPでウェブアプリケーションを開発するためのツールです。symfonyを使うことで色々な機能を利用することができます。また、symfonyを利用することで様々な制約もありますので、正しく理解しておく必要があります。 Smartyを利用したことがある方ならSmartyタグには慣れているかと思いますが、symfonyはSmartyタグを使いません。PHP構文そのもので記述します。 つまりこれまで書いてきたような以下のSmartyタグのif文だと <!--{if $is_chcecked }--> ... <!--{/if}--> のように記述してきたと思いますが、symfonyでは次のような純粋なPHP構文での記述になります。 <php? if ($is_checked): ?> ... <php? endif ?> このようにPHP構文について理解する必要があります。
symfonyブック 日本語ドキュメント version 1.0symfonyブック 日本語ドキュメント(暫定版) The symfony 初級講座 symfony 101 開発者ツール how to おまけ symfonyについて Symfonyをざっと見て 概要 フレームワークとは何? symfony って何? symfonyは私にとって役立ちますか? symfony のインストール 概要 導入 必要条件 サンドボックス PEAR パッケージからのsymfonyインストール PEARのセットアップ symfonyのインストール どこに symfony のファイルがあるのか? ナイトビルド版を手に入れる 手動による symfony のインストール コマンドラインを用いずに symfony をインストール ユーザーによるガイド プロジェクト作成と'symfony' コマンド 概要 導入 P
概要 テンプレートで一般的に必要とされることの 1 つは URL 作成の自動化と、ファイル構造にかかわらないローカルファイルの読み込みです。例えば、リンクと画像のヘルパーは自動で <a> と <img> に置き換え全ての退屈な仕事をあなたにかわって行います。これらを利用は、構成に影響を受けるルーティングと相対リンクを可能にするために必須です。 導入 URL のあるアクションを呼び出す方法はすでに説明しました。つまり、モジュール名とアクション名をフロントコントローラーの後に典型的な "GET" パラメータのように付け加えるか、スラッシュ (/) の間につけます。 http://myapp.example.com/index.php/article/read?title=Finance_in_France // これは下記と同じです。 http:/myapp.example.com/index
symfonyでウェブサイト構築をおこなったときに、いつも悩んでいることがありました。それは、プログラマに依存しないサイト運営方法です。完全に解決しているわけではないですが、現在おためし中の方法をメモ。 問い合わせフォーム機能などのアプリケーションを運用するときにある程度プログラマに依存するのは問題ないのですが、アプリケーションというよりは静的なページを増やしたりするときにまでプログラマに依存してしまいます。 たとえば、会社紹介のページを次のようなURLで新しく作りたいとします。 %%http://example.com/html/company%% 普通にsymfonyを用いるのであれば次のような手順が必要です。
このプラグインはsymfonyをCMSツールのように扱うことができる基本的なモジュールを提供します。
概要 特にデフォルトの値がアプリケーションモデルにリンクされているとき、symfony はフォームを含むテンプレートで繰り返しのコーディングを避けるためにフォームヘルパーを実装しています。 導入 テンプレートにおいて、フォーム要素の HTML タグは PHP コードと一緒に使われることがしばしばあります。symfony のフォームヘルパーによってこの仕事を単純化し、要素タグの中に PHP の開始タグである <?php echo タグを書かなくてすむようにします。また、id 値を定義するために name 属性も複製してくれます。 さらに、フォーム制御があなたのデータモデルのオブジェクトにリンクしているなら、 symfony は、デフォルト値を定めるか、可能な値をリストする面倒さを自動化することができます。 symfony は、フォームバリデーションヘルパーも実装しています。仕様の詳細について
概要 symfony は Propel プロジェクトに基づくオブジェクト/リレーショナルレイヤーを実装しています。データベースにあるデータにアクセスし修正することを、データベースのオブジェクトトランスレーションを通すことで簡単に行えます。この章においてこのオブジェクトデータモデルである、Propel によるデータアクセスと修正方法について説明します。また、symfony における Propel との連動方法について例示します。 なぜ抽象レイヤーを利用するのか データベースは相関的なものです。PHP5 と symfony はオブジェクト指向です。オブジェクト指向においてデータベースにアクセスするには、オブジェクトロジックを相関ロジックに変換するためのインターフェースが必要になります。これはオブジェクトリレーショナルマッピング ( ORM ) といわれています。 これは symfony の M
概要 バックエンドと共同のアプリケーションはしばしばユーザーにメディアやデータファイルのアップロードを必要とします。数行のコードで、 symfony は全ての考慮が必要な - リネーム処理、アップロードディレクトリの変更など - 作業を操作します。アドミン ジェネレーターのユーザーも単純な設定で実装作業を軽減する新しいヘルパーを利用できます。 通常のファイルアップロード テンプレートでファイルをアップロードするフォームと、作業を担うアクションが必要です。たとえば、input_file_tag() ヘルパーを multipart として宣言したフォームで使います。 <?php echo form_tag('media/upload', 'multipart=true') ?> <?php echo input_file_tag('file') ?> <?php echo submit_tag
どの言語を使っていても、コーディングする人が意識しないとセキュリティに問題のあるアプリケーションを作ってしまいます。 どういったことに気をつけなければならないかという点でメモ。
現在PHPには数多くの開発支援フレームワークが存在します。それぞれ特徴があり、一概にどれかが良いとはいえない状態です。プロジェクトの規模や環境によって適切なフレームワークを選択したり、もしくはフレームワークを使用しないという選択も大事です。1) ここでは、個人的に調べてきたフレームワークに関するメモを残しています。 まずは、フレームワークが本当に必要かどうかという点での判断が必要です。数画面で終わってしまうようなアプリケーションのためだけにわざわざ高機能なフレームワークを導入するぐらいなら、さくっと素のPHPで作成してしまったほうが早いですし、PHPらしいです。2)
概要 symfony はユーザーを特定したり、ユーザー証明の管理したり、特定の証明を持つユーザーのみがアクセスできるページへのアクセスを制限したりするための簡単なメカニズムを提供します。 ユーザーの特定 ユーザーの認証済みステータスは sfUser/myUser オブジェクトの ->setAuthenticated() 関数によって設定されます。たとえば、ログイン(login) と ログアウト(logout) アクションの両方で myAccount を呼び出しているモジュールにおいてユーザー特定の単純なバージョンを実装する必要があるなら、次のように書くことができます。 class myAccountActions extends sfActions { public function executeLogin() { if ($this->getRequestParameter('logi
概要 symfony プロジェクトのツリー構造は完全にカスタマイズできますが、一貫性があります。この章でこの構造に慣れ、その後ろにあるロジックを理解することができます。 導入 全てのプロジェクトは一般的に同じ構造上の必要性を共有しています。 データベース 静的ファイル( HTML、 画像、JavaScript 、スタイルシート等) サイト利用者と管理者によるファイルアップロード PHP クラスとライブラリ 外部ライブラリ バッチファイル ログファイル 設定ファイル その他 開発者に全ての既存 symfony プロジェクトを適用することを許可するためには、以下のような標準ツリー構造に従っていることが推奨されます。これはまた、全てのプロジェクト、アプリケーション、モジュールを初期化するときに標準ツリー構造が自動的に作成されるので、プロジェクト作成をスピードアップできます。 ルートツリー構造 S
概要 この章では symfony フレームワークを 'sandbox' アーカイブからのインストール、PEAR パッケージからのインストール、またはソースリポジトリから手動でのインストールするための手順を解説します。 導入 symfony は PHP で書かれたファイル群から構成されています。プロジェクトは symfony がこれらのファイルを使用することに基づいているため、 symfony をインストールするということはこれらのファイルを取得し、あなたのプロジェクトに利用できるようにすることを意味します。 symfony は1つまたは多くのプロジェクトに利用することができます。もしあなたがたった1つのプロジェクトの仕事をしているのなら、あなたが開発しているアプリケーション内のみにフレームワークを埋め込みたいかもしれません。また一方で、もし symfony を2つ以上のプロジェクトのために
概要 symfony で利用可能な多くのオブジェクトは拡張することができます。それらのオブジェクトはパラメーターホルダー、それは新しいデータを保存しておくことができるものですが、それを受け入れます。これは特に、クラス全体をオーバーライドせずに、素早くカスタム属性を追加するのに役立つはずです。 導入 ウェブリクエスト、ユーザーセッションやショッピングカートのようなカスタムビジネスオブジェクトを扱うとき拡張する必要がしばしば発生します。拡張部分がロジックを含むなら、クラスを拡張 ( またはオーバーライド ) しなければならないでしょう。しかし、必要なことは単純にデータを保持しておくことであれば、パラメーターホルダーが解決策になります。 sfRequest, sfUser そして sfShoppingCart オブジェクトはクラスをオーバーライドせずに追加したデータを貯めて、再利用する sfPa
symfonyをそのまま使う上では避けて通れないのがORマッパーであるPropelと抽象レイヤーのCreoleです。 ちなみに、PropelがCreoleのデータベース抽象レイヤーを使用してデータベースにアクセスしています。 Propelでどのデータベースを利用できるかはCreole次第というわけですね。 では、Creoleの使い方をざっくりとまとめます。
次のページ
このページを最初にブックマークしてみませんか?
『develop.ddo.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く