<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>ueblog &#187; PHP</title>
	<atom:link href="http://ueblog.natural-wave.com/category/webtechnology/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://ueblog.natural-wave.com</link>
	<description>Web関連のネタを中心に役立つ情報を配信しています。</description>
	<lastBuildDate>Wed, 11 Jan 2012 00:51:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/category/webtechnology/php/feed/" />
		<item>
		<title>PHPの軽量フレームワーク「Codeigniter」導入</title>
		<link>http://ueblog.natural-wave.com/2011/02/13/introduction-codeigniter/</link>
		<comments>http://ueblog.natural-wave.com/2011/02/13/introduction-codeigniter/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 15:04:10 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programing]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=760</guid>
		<description><![CDATA[久々の更新。 Codeigniterという、PHP製のフレームワークがとてもいい感じだったのでご紹介。 軽量、そして学習コストの低さ 日本のCodeigniterユーザ会のページにもありますが、導入がとても簡単、シンプルな構成と規約で覚えておくことがかなり少]]></description>
			<content:encoded><![CDATA[<p><a href="http://codeigniter.com/"><img src="http://ueblog.natural-wave.com/wp-content/uploads/2011/02/picture-2.png" title="picture-2" width="222" height="77" class="size-full wp-image-762 alignright" /></a>久々の更新。</p>
<p><a href="http://codeigniter.com/" target="_blank">Codeigniter</a>という、PHP製のフレームワークがとてもいい感じだったのでご紹介。</p>
<h3>軽量、そして学習コストの低さ</h3>
<p><a href="http://codeigniter.jp/" target="_blank">日本のCodeigniterユーザ会のページ</a>にもありますが、導入がとても簡単、シンプルな構成と規約で覚えておくことがかなり少なく、最近のRuby on Rails似のフレームワークのようなフルスタックな機能は切り捨てている分、動作がかなり高速というのが特徴のようです。またPHP4でも動作します。（つい先日リリースされた、Codeigniter2よりPHP5以上を必要とする。）</p>
<h3>インストール</h3>
<p>インストールは本当にとても簡単。</p>
<p><a href="http://codeigniter.com/downloads/" target="_blank">http://codeigniter.com/downloads/</a></p>
<p>上記のダウンロードサイトより、ダウンロードしZIPファイルを解凍、公開ディレクトリ（DocumentRoot）以下に配置するだけです。下記のような構成になります。</p>
<blockquote><p>www/index.php        ←    すべてこのindex.php経由で呼ばれる<br />
www/application/    ←　Controller,View,Modelなど開発者が触るところ<br />
www/system/　　　←　フレームワーク本体（触らない）</p></blockquote>
<p>PEARなどで必要とするライブラリもなく、このアーカイブ内だけで動作できるので、制限の多いレンタルサーバにも導入しやすいと思います。</p>
<h3>Getting Started!</h3>
<p>早速、コーディングしたいところですが、簡単とはいえ、いくつかのルールは覚えておく必要があります。</p>
<p><a href="http://codeigniter.com/user_guide/" target="_blank">Codeigniter User Guide</a></p>
<p><a href="http://codeigniter.jp/user_guide_ja/" target="_blank">CodeIgniter ユーザガイド 日本語版</a></p>
<p>上記のユーザガイドのチュートリアルを簡単に眺めるだけですぐに理解できると思います。日本語の方は現在のところ、Codeigniter1.7のガイド（現在翻訳中のようです）のため、記述が違いがありますが、（例えば、Controller→CI_Controllerをextendするとか）大きな流れは変わりません。</p>
<h3>機能</h3>
<p>DBとの連携、セッション管理、暗号化、メール、フォームValidateなどなど、最低限の機能は揃っています。またヘルパー等による拡張も可能です。</p>
<h3>情報源</h3>
<p>フレームワーク選びで重要なことが、「マニュアルが豊富」「どれだけのユーザが利用してるか」が挙げられると思いますが、マニュアルに関しては上記であげた公式サイトのユーザガイドが分かりやすく問題ないと思います。また利用してるユーザ数は、単純なGoogleのインデックス数でみると、、</p>
<p><a href="http://www.google.co.jp/search?aq=f&amp;sourceid=chrome&amp;ie=UTF-8&amp;q=symfony&amp;qscrl=1" target="_blank">Symfony</a> →  約 5,290,000 件</p>
<p><a href="http://www.google.co.jp/search?hl=ja&amp;safe=off&amp;qscrl=1&amp;q=cakephp&amp;aq=f&amp;aqi=g10&amp;aql=&amp;oq=" target="_blank">CakePHP</a> →　約 3,790,000 件</p>
<p><a href="http://www.google.co.jp/search?hl=ja&amp;safe=off&amp;qscrl=1&amp;q=Codeigniter&amp;btnG=%E6%A4%9C%E7%B4%A2&amp;aq=f&amp;aqi=g10&amp;aql=&amp;oq=" target="_blank">Codeigniter</a> →　約 2,220,000 件</p>
<p>CakePHPやSymfonyといったフレームワークには少ないですが、Codeigniterについて書かれたブログも結構増えてきているように見えます。まあ、困ったときは本体のソースもそんなに大きくないのでソースを読むのも、そんなに苦ではないでしょう。</p>
<p>日本語のフォーラムもこの2011年2月下旬より公開されるようです。</p>
<h3>最後に</h3>
<p>PHPを使って簡単に実装したい、既存のPHPソースを新たに書き直したい、プロジェクトが新しいメンバーで構成されていて経験が異なる等、様々な場面で活躍できるフレームワークです。</p>
<p>私自身もPHPで実装するときはSymfonyを選んでましたが、プロジェクトの規模や一緒に開発するメンバーの経験などを考慮して、このCodeigniterも選択肢としてかなり良いと思いました。</p>
<p>※追記</p>
<p>2011/2/19に<a href="http://cicon.codeigniter.jp/2011/" target="_blank">日本初となるCodeigniterカンファレンス</a>が行われるようです。</p>
<p>行きたいなー。</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2011/02/13/introduction-codeigniter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2011/02/13/introduction-codeigniter/" />
	</item>
		<item>
		<title>さくらインターネットで「Premature end of script headers」</title>
		<link>http://ueblog.natural-wave.com/2010/10/14/premature-end-of-script-on-sakura/</link>
		<comments>http://ueblog.natural-wave.com/2010/10/14/premature-end-of-script-on-sakura/#comments</comments>
		<pubDate>Wed, 13 Oct 2010 15:38:57 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programing]]></category>
		<category><![CDATA[さくら]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=735</guid>
		<description><![CDATA[今日はメモ的な記事です。 さくらインターネットのレンタルサーバーで、PHP、perlなどを動かしているときに下記のようなエラーが発生することがある。 Premature end of script headers: ファイル名 これは大概にして、サーバ側の設定とスクリプトの問題のようで、]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sakura.ne.jp/" target="_blank"><img src="http://www.sakura.ad.jp/common/images/header-logo.gif" width="188" height="47" class="alignnone" /></a></p>
<p>今日はメモ的な記事です。</p>
<p>さくらインターネットのレンタルサーバーで、PHP、perlなどを動かしているときに下記のようなエラーが発生することがある。</p>
<p><code>Premature end of script headers: ファイル名</code></p>
<p>これは大概にして、サーバ側の設定とスクリプトの問題のようで、今回は実行するphpファイルのパーミッションの問題であった。</p>
<p>666や777のように自分以外に書き込み権限があると、セキュリティの問題で上記のエラーが出る。また気をつけるべきところは、そのスクリプトだけではなく、そのファイルを置いているディレクトリも同様に777などの権限になっていると、エラーになった。</p>
<p>今回はあるCMSが自動生成するPHPがそのような権限にしていたために判明した。</p>
<p>はまったので参考までに・・・</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2010/10/14/premature-end-of-script-on-sakura/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2010/10/14/premature-end-of-script-on-sakura/" />
	</item>
		<item>
		<title>symfony＋MAMPでdoctrine:buildできない時の対策</title>
		<link>http://ueblog.natural-wave.com/2010/07/11/symfony-mamp-doctrine-build/</link>
		<comments>http://ueblog.natural-wave.com/2010/07/11/symfony-mamp-doctrine-build/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 08:49:16 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programing]]></category>
		<category><![CDATA[MAMP]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=681</guid>
		<description><![CDATA[久々にsymfonyネタ。 MACのLAMP環境である、MAMP上でsymfonyを動かしていて、symfonyコマンドでdoctrineのタスクを実行する際、DB接続を必要とする場合、下記のようなエラーになることがある。 Warning: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock) in /Applications/MAMP/bin/php5.3/symfony-1.4.4/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php on line 470 PDO Connection Error: SQLSTATE[HY000] [2002] No such file or directory UNIXソケットを使用した、mysql接続に失敗しているため、database.ymlにてソケットの位置を指]]></description>
			<content:encoded><![CDATA[<p>久々にsymfonyネタ。</p>
<p>MACのLAMP環境である、MAMP上でsymfonyを動かしていて、symfonyコマンドでdoctrineのタスクを実行する際、DB接続を必要とする場合、下記のようなエラーになることがある。</p>
<blockquote><p>Warning: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///tmp/mysql.sock) in /Applications/MAMP/bin/php5.3/symfony-1.4.4/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php on line 470</p>
<p>PDO Connection Error: SQLSTATE[HY000] [2002] No such file or directory</p></blockquote>
<p>UNIXソケットを使用した、mysql接続に失敗しているため、database.ymlにてソケットの位置を指定してあげれば上手くいく。</p>
<div class="igBar"><span id="lcode-2"><a href="#" onclick="javascript:showPlainTxt('code-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-2">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">all:</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; doctrine:</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; class: sfDoctrineDatabase</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; param:</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; dsn: <span style="color:#CC0000;">'mysql:host=localhost;dbname=sample;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock'</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; port:&nbsp; &nbsp; &nbsp;<span style="color:#800000;color:#800000;">8889</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; username: sample</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; password: sample </div>
</li>
</ol>
</div>
</div>
</div>
<p>
「dbname」の指定のあとに、「unix_socket」を指定してあげればうまくいった。</p>
<p>ちょっとはまったので参考までに。</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2010/07/11/symfony-mamp-doctrine-build/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2010/07/11/symfony-mamp-doctrine-build/" />
	</item>
		<item>
		<title>Zend_Service_AmazonのAmazon新API対応について</title>
		<link>http://ueblog.natural-wave.com/2009/08/08/zend_service_amazon-new-api/</link>
		<comments>http://ueblog.natural-wave.com/2009/08/08/zend_service_amazon-new-api/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 06:47:43 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programing]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[API]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=504</guid>
		<description><![CDATA[Amazon APIを利用している方、新しい認証方法に対応してますか～？ 2009年8月16日からAmazon APIの認証方法が変更されるにあたって、利用している方は対応が必要です。 かなりざっくり説明すると、 URLにtimestampを付与 URLパラメータをアルファベット順にソート パラ]]></description>
			<content:encoded><![CDATA[<p><strong>Amazon API</strong>を利用している方、新しい認証方法に対応してますか～？</p>
<p>2009年8月16日からAmazon APIの認証方法が変更されるにあたって、利用している方は対応が必要です。</p>
<p>かなりざっくり説明すると、</p>
<ul>
<li>URLにtimestampを付与</li>
<li>URLパラメータをアルファベット順にソート</li>
<li>パラメータにAmazonから新しく付与されているキーを元にハッシュ化しURLエンコード</li>
<li>ハッシュ化されたキーをURLにくっつけて、APIにアクセス！</li>
</ul>
<p>と言った具合。詳しくは</p>
<p><a href="http://chalow.net/2009-05-09-1.html" target="_blank">[を] アマゾンAPIを使うのに2009年8月15日から認証が必要になるらしい</a></p>
<p>こちらを参照。</p>
<p>さて本題、<strong>Zend_Service_Amazon</strong>を利用している場合はどうすればよいか。</p>
<p>実はとても簡単。Zend_Service_APIオブジェクトをnewするときの第3引数にAmazonから付与される、Secret Access Keyを指定するだけ！</p>
<p>まずは、<a href="http://aws.amazon.com/" target="_blank">Amazon Web Services</a>でログインしてから、上部メニューの「Your Account」⇒「Access Identifiers」へ行き、<strong>Your Secret Access Key:</strong>と書かれている部分をコピーしておく。</p>
<p>このSecret Access Keyをnew Zend_Service_APIしているソースの第3引数に指定しよう。</p>
<div class="igBar"><span id="lphp-5"><a href="#" onclick="javascript:showPlainTxt('php-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-5">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$amazon</span> = <span style="color:#000000; font-weight:bold;">new</span> Zend_Service_Amazon<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'Access Key'</span>, <span style="color:#FF0000;">'JP'</span>, <span style="color:#FF0000;">'Secret Access Key'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$result</span> = <span style="color:#0000FF;">$amazon</span>-&gt;<span style="color:#006600;">ItemLookup</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$item_code</span>, <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#FF0000;">'AssociateTag'</span>&nbsp; =&gt; <span style="color:#FF0000;">'associate_tag'</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#FF0000;">'ResponseGroup'</span> =&gt; <span style="color:#FF0000;">'Large'</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
以上終了！Zend使っててよかった～</p>
<p>ちなみに2009年7月26日に更新されたようなので、zendのアップグレードをしていない方は、ソースを落とすなり、「<strong>pear upgrade zend/zend」</strong>しておきましょう。</p>
<p>ちなみにZend_Service_Amazonコンストラクターのphpdocはこんな感じ。</p>
<div class="igBar"><span id="lphp-6"><a href="#" onclick="javascript:showPlainTxt('php-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-6">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">/**</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;"> * Constructs a new Amazon Web Services Client</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;"> *</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;"> * @param&nbsp; string $appId&nbsp; &nbsp; &nbsp; &nbsp;Developer's Amazon appid</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;"> * @param&nbsp; string $countryCode Country code for Amazon service; may be US, UK, DE, JP, FR, CA</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;"> * @throws Zend_Service_Exception</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;"> * @return Zend_Service_Amazon</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;"> */</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;public <span style="color:#000000; font-weight:bold;">function</span> __construct<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$appId</span>, <span style="color:#0000FF;">$countryCode</span> = <span style="color:#FF0000;">'US'</span>, <span style="color:#0000FF;">$secretKey</span> = <span style="color:#000000; font-weight:bold;">null</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
あれ第3引数のdocumentが書かれてない。。でもちゃんと実装はされていて動作もしたので念のため。</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2009/08/08/zend_service_amazon-new-api/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2009/08/08/zend_service_amazon-new-api/" />
	</item>
		<item>
		<title>さくらインターネットでpearが動かないとき</title>
		<link>http://ueblog.natural-wave.com/2009/08/08/dont-run-pear-on-sakurainternet/</link>
		<comments>http://ueblog.natural-wave.com/2009/08/08/dont-run-pear-on-sakurainternet/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 05:41:01 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programing]]></category>
		<category><![CDATA[さくら]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=500</guid>
		<description><![CDATA[久しぶりにさくらインターネットのレンタルサーバで、pearコマンドを打ったところ動かなかった。 $ pear upgrade exec: /usr/local/php-5.2.5/bin/php: not found 自前でpearをインストールした人は、pearコマンドの改修が必要なようだ。 pearコマンド自体はシェルなので直接書き換えることにした。 $ which pear /home/[home]/local/bin/pear $ vi ~/local/bin/pear 7行目]]></description>
			<content:encoded><![CDATA[<p>久しぶりにさくらインターネットのレンタルサーバで、pearコマンドを打ったところ動かなかった。</p>
<blockquote><p>$ pear upgrade<br />
exec: /usr/local/php-5.2.5/bin/php: not found</p></blockquote>
<p>自前でpearをインストールした人は、pearコマンドの改修が必要なようだ。</p>
<p>pearコマンド自体はシェルなので直接書き換えることにした。</p>
<blockquote><p>$ which pear<br />
/home/[home]/local/bin/pear<br />
$ vi ~/local/bin/pear</p></blockquote>
<p>7行目あたり</p>
<div class="igBar"><span id="lcode-8"><a href="#" onclick="javascript:showPlainTxt('code-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-8">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">#&nbsp; if test <span style="color:#CC0000;">"/usr/local/php-5.2.5/bin/php"</span> = <span style="color:#CC0000;">'@'</span>php_bin<span style="color:#CC0000;">'@'</span>; then</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; if test <span style="color:#CC0000;">"/usr/local/php/5.2.10/bin/php"</span> = <span style="color:#CC0000;">'@'</span>php_bin<span style="color:#CC0000;">'@'</span>; then</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; PHP=php</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; else</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">#&nbsp; &nbsp; PHP=<span style="color:#CC0000;">"/usr/local/php-5.2.5/bin/php"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; PHP=<span style="color:#CC0000;">"/usr/local/php/5.2.10/bin/php"</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; fi</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">fi </div>
</li>
</ol>
</div>
</div>
</div>
<p>
するとpearコマンドは無事動きましたとさ。</p>
<blockquote><p>$ pear upgrade zend/zend<br />
WARNING: channel "zend.googlecode.com/svn" has updated its protocols, use "channel-update zend.googlecode.com/svn" to update<br />
downloading Zend-1.9.0.tgz ...<br />
Starting to download Zend-1.9.0.tgz (3,249,096 bytes)<br />
..........done: 3,249,096 bytes<br />
upgrade ok: channel://zend.googlecode.com/svn/Zend-1.9.0</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2009/08/08/dont-run-pear-on-sakurainternet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2009/08/08/dont-run-pear-on-sakurainternet/" />
	</item>
		<item>
		<title>Net_UserAgent_Mobile :: 1.0.0RC2公開</title>
		<link>http://ueblog.natural-wave.com/2009/05/16/net_useragent_mobile/</link>
		<comments>http://ueblog.natural-wave.com/2009/05/16/net_useragent_mobile/#comments</comments>
		<pubDate>Sat, 16 May 2009 12:12:26 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programing]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=401</guid>
		<description><![CDATA[PHPで携帯サイト開発者には、お馴染みのPEARモジュール「Net_UserAgent_Mobile」がRC2となってアップグレードされたようです。 Net_UserAgent_Mobile :: 1.0.0RC2 アップグレード方法はPEARコマンドで。 # pear upgrade Net_UserAgent_Mobile 今回アップグレードされた内容は、 docomoの新機種マッピング対応 「Strict standards errors」のwarningに対応など、バグFIX ライセ]]></description>
			<content:encoded><![CDATA[<p>PHPで携帯サイト開発者には、お馴染みのPEARモジュール「Net_UserAgent_Mobile」がRC2となってアップグレードされたようです。</p>
<p><a href="http://pear.php.net/package/Net_UserAgent_Mobile/download/1.0.0RC2/" target="_blank">Net_UserAgent_Mobile :: 1.0.0RC2</a></p>
<p>アップグレード方法はPEARコマンドで。</p>
<blockquote><p># pear upgrade Net_UserAgent_Mobile</p></blockquote>
<p>今回アップグレードされた内容は、</p>
<ul>
<li>docomoの新機種マッピング対応</li>
<li> 「Strict standards errors」のwarningに対応など、バグFIX</li>
<li>ライセンスの変更。PHP License　⇒　New BSD License</li>
</ul>
<p>のようです。</p>
<p>ソースをよくよく見てみると、docomoのGPS対応端末可否を返したり、HTMLバージョンを返す部分は、機種のマッピング表をソースに持っていたとは・・・</p>
<p>そんなに頻繁にアップグレードされないモジュールなため、その辺りを使いたい人は自分でメンテナンスしないとだめでしょうね。</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2009/05/16/net_useragent_mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2009/05/16/net_useragent_mobile/" />
	</item>
		<item>
		<title>VMware Player＋CentOS＋EclipseでPHPの開発環境を作る</title>
		<link>http://ueblog.natural-wave.com/2009/04/04/vmware-centos-eclipse-php/</link>
		<comments>http://ueblog.natural-wave.com/2009/04/04/vmware-centos-eclipse-php/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 01:31:59 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programing]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[サーバ]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/?p=365</guid>
		<description><![CDATA[いまさら？な感じもするが、快適な開発環境を作るべく、Windows上にLinuxの仮想環境を用意し、PHPの開発環境を作ってみることにした。 利用したソフトウェアとバージョンは下記になる。 VMware Player2.5 Windows Vista(ホスト) Cent OS 5.2（ゲスト） Apache mysql PHP Eclipse3.3 VMware Playerのインストール VMware Playerのインストール自]]></description>
			<content:encoded><![CDATA[<p>いまさら？な感じもするが、快適な開発環境を作るべく、Windows上にLinuxの仮想環境を用意し、PHPの開発環境を作ってみることにした。</p>
<p>利用したソフトウェアとバージョンは下記になる。</p>
<ul>
<li>VMware Player2.5</li>
<li>Windows Vista(ホスト)</li>
<li>Cent OS 5.2（ゲスト）</li>
<li>Apache</li>
<li>mysql</li>
<li>PHP</li>
<li>Eclipse3.3</li>
</ul>
<h3 class="PostLine">VMware Playerのインストール</h3>
<p>VMware Playerのインストール自体はとても簡単。</p>
<p><a href="http://www.vmware.com/jp/products/player/" target="_blank">VMware Player 、仮想マシン、仮想PC - VMware</a></p>
<p>上記からダウンロードしたファイルを実行すればOK。ダウンロードする前にメールアドレスやアンケートがあるので答えておく。</p>
<p>インストール後は再起動を求められるので、再起動しておこう。</p>
<h3 class="PostLine">Cent OSのインストール</h3>
<p>CentOSのインストールする前に、VMwareのディスクイメージを作成する必要があるので、下記サイトで情報を入力しダウンロードする。</p>
<p><a href="http://www.easyvmx.com/">EasyVMX!: Virtual Machine Creator</a></p>
<p>EaxyVMX V2.0というアイコンをクリックし、下記の情報を入力し、「Create Virtual Machine」ボタンを押すとzipファイルをダウンロードできるようになる。</p>
<table style="height: 110px;" border="1" cellspacing="0" cellpadding="2" width="405">
<tbody>
<tr>
<td width="161" valign="top">Virtual Machine Name</td>
<td width="208" valign="top">CentOS5.2　　（なんでもOK）</td>
</tr>
<tr>
<td width="161" valign="top">Select GuestOS</td>
<td width="208" valign="top">Redhat Enterprise Linux 4</td>
</tr>
<tr>
<td width="161" valign="top">Memory Size</td>
<td width="208" valign="top">320MB (適度な値に設定)</td>
</tr>
<tr>
<td width="161" valign="top"># of CPUs</td>
<td width="208" valign="top">1CPU</td>
</tr>
<tr>
<td width="161" valign="top">Disk #1</td>
<td width="208" valign="top">Disk Size 4.7GB(Fits on a DVS)(適度な値に設定)</td>
</tr>
<tr>
<td width="161" valign="top">Shared Folder #</td>
<td width="208" valign="top">ホスト、ゲストOS間でファイル共有したい場合はチェック。</td>
</tr>
</tbody>
</table>
<p>次にCentOSのファイルイメージをミラーサイトからダウンロードする。</p>
<p><a href="http://ftp.riken.jp/Linux/centos/5/isos/i386/" target="_blank">http://ftp.riken.jp/Linux/centos/5/isos/i386/</a></p>
<blockquote><p>CentOS-5.2-i386-bin-DVD.iso</p></blockquote>
<p>EaxyVMXで作成したZIPにある「CentOS5.2.vmx」に上記で落としたCentOSのイメージファイルを指定するように下記の部分をテキストエディタで編集する。</p>
<blockquote><p># Settings for physical CDROM drive<br />
ide1:0.present = "TRUE"<br />
ide1:0.deviceType = "<span style="color: #ff0000;">cdrom-image</span>"<br />
ide1:0.startConnected = "TRUE"<br />
ide1:0.fileName = "<span style="color: #ff0000;">C:\CentOS5.2\CentOS-5.2-i386-bin-DVD.iso</span>"<br />
ide1:0.autodetect = "TRUE"</p></blockquote>
<p>赤色の部分が編集する部分で、fileName部分は落としたファイルの場所を指定する。</p>
<p>ここまでの準備ができればやっとインストールに入ることができる。</p>
<p>上記の「CentOS5.2.vmx」をダブルクリックで実行すると、VMwareが立ち上がり、CentOSのインストールウィザードが表示されるだろう。</p>
<p>詳しいCentOSのインストール方法は下記が詳しい。</p>
<p><a href="http://www.memolica.com/200903/entry160.html" target="_blank">VMwareとCentOSで簡単CMSテスト環境構築(3) - memolica * 小さな会社で働いている人のメモ</a></p>
<p><a href="http://centossrv.com/">CentOSで自宅サーバー構築</a></p>
<p>ポイントとしては、今回Eclipseをインストールするので、GUIのGNOMEかKDEをインストールしてしまおうということくらい。あとはお好みで。</p>
<h3 class="PostLine">VMware Toolsのインストール</h3>
<p>VMware Player2.5からは、VMware Toolsが添付されないということで、共有フォルダやコピーアンドペーストが利用できる、VMware Toolsをインストールしておく。</p>
<p><a href="http://register.vmware.com/content/download-108.html" target="_blank">Download VMware Server</a></p>
<p>tar.gzバイナリの中から、「linux.iso」を抜き出し、またその中から「VMWARETO.TGZ」というファイルを解凍して出てくる、RPMファイルを利用してインストールする。</p>
<p>詳しい説明は下記。</p>
<p><a href="http://homepage3.nifty.com/nasunu-i/VMware/Fedora7.htm#ToolsInstall" target="_blank">VMware Player に Fedora7 をゲストＯＳとしてインストール。VMware Tools (VMwareTools)のインストール</a></p>
<p>コピーアンドペーストを有効にするには、vmware-toolboxを常駐させる必要があるので端末などで下記のコマンドを打つ必要がある。</p>
<blockquote><p># vmware-toolbox &amp;</p></blockquote>
<p>あとはキーボードレイアウトの変更、解像度の設定など最適な環境にしておく。</p>
<h3 class="PostLine">(L)AMP環境のインストール</h3>
<p>PHP、MYSQL、APACHEをyumですべていれてしまう。ついでにsymfonyも。</p>
<blockquote><p># yum install php php-pear php-mbstring php-mysql php-gd php-xml</p>
<p># yum install httpd</p>
<p># yum install mysql-server</p>
<p># pear upgrade PEAR</p>
<p># pear channel-discover pear.symfony-project.com</p>
<p># pear <span id="searchword">install</span> <span id="searchword">symfony</span>/symfony-1.0.20</p></blockquote>
<h3 class="PostLine">Eclipseのインストール</h3>
<p>まずはjdkをインストールするためにrpmをダウンロードしインストール</p>
<p><a href="http://java.sun.com/javase/ja/6/download.html" target="_blank">Java SE ダウンロード - Sun Developer Network (SDN)</a></p>
<p>RPMのJDKを選択しダウンロードしたファイルを実行する。</p>
<blockquote><p># chmod a+x jdk-6u13-linux-i586-rpm.bin</p>
<p># ./jdk-6u13-linux-i586-rpm.bin</p></blockquote>
<p>Eclipseは<a href="http://downloads.zend.com/pdt/all-in-one/" target="_blank">zendのall in one PDT</a>のものを、日本語化は<a href="http://mergedoc.sourceforge.jp/" target="_blank">Plieades</a>からそれぞれダウンロードして展開する。</p>
<blockquote><p># tar xvfz pdt-2.0.0GA_debugger-5.2.15.v20081217-all-in-one-linux-gtk.tar.gz</p>
<p># mv pleiades_1.3.0.zip eclipse/</p>
<p># unzip pleiades_1.3.0.zip</p>
<p># mv /usr/local/src/eclipse /usr/local/</p></blockquote>
<p>eclipseディレクトリにある、eclipse.iniの一番下に下記を追記。</p>
<blockquote><p>-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar</p></blockquote>
<p>Eclipseを実行</p>
<blockquote><p># /usr/local/eclipse/eclipse -vm /usr/java/jdk1.6.0_13/bin/java</p></blockquote>
<p>あとはEclipseの設定をするだけ。</p>
<p>VMwareというより、CentOSのGNOMEのキーボード設定や日本語環境を整備するのに少し手間取ったが、とても簡単に仮想開発環境を作成できた。</p>
<p>これはとても便利だ。</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2009/04/04/vmware-centos-eclipse-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2009/04/04/vmware-centos-eclipse-php/" />
	</item>
		<item>
		<title>symfonyのジョブ管理プラグイン「sfJobQueuePlugin」</title>
		<link>http://ueblog.natural-wave.com/2008/07/19/sfjobqueueplugin/</link>
		<comments>http://ueblog.natural-wave.com/2008/07/19/sfjobqueueplugin/#comments</comments>
		<pubDate>Sat, 19 Jul 2008 13:21:00 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programing]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/2008/07/19/sfjobqueueplugin/</guid>
		<description><![CDATA[Javaでいう「ActiveMQ」、Perlでいう「TheSchwartz」みたいなジョブキューサーバ的なもので、PHPから簡単に利用できるものがないかと探していると、symfonyのプラグインとしてありました。 その名も「sfJobQueuePlugin」です。 まあ、何がやりたいかと言うと、、Webサーバの処理等]]></description>
			<content:encoded><![CDATA[<p>Javaでいう「<strong>ActiveMQ</strong>」、Perlでいう「<strong>TheSchwartz</strong>」みたいなジョブキューサーバ的なもので、PHPから簡単に利用できるものがないかと探していると、symfonyのプラグインとしてありました。</p>
<p>その名も「<a href="http://trac.symfony-project.org/wiki/sfJobQueuePlugin" target="_blank">sfJobQueuePlugin</a>」です。</p>
<p>まあ、何がやりたいかと言うと、、Webサーバの処理等ですぐ処理しなくてもよいような処理や、Webプロセスとしてやるには時間がかかってしまったり、重たい処理なんかを、ジョブキューサーバにリクエストしておいて、非同期に処理させたい場合なんかに利用したいんですね。</p>
<p>例えば、メール大量送信処理とか、CSVや画像のアップロード処理なんかをキューにリクエストを送っておいて、非同期で処理⇒何かしらの手段で通知！みたいな感じをしたい時とかを想定してます。</p>
<p>さっそく、インストールしてみることに。</p>
<h3  class="PostLine">インストール</h3>
<p>いつものプラグインインストールと同じで、プロジェクトディレクトリ下で下記のコマンドを。</p>
<blockquote><p>symfony plugin-install http://plugins.symfony-project.com/sfJobQueuePlugin</p></blockquote>
<p>そして、sfJobQueuePluginで利用されるテーブルを作成するため、propelのビルドを行います。</p>
<blockquote><p>symfony propel-build-all</p></blockquote>
<p>ジョブ、キューはDBで管理してるようです。</p>
<p>そして<br />
<img src='http://ueblog.natural-wave.com/wp-content/uploads/2008/07/s-sfjobqueueplugin_admin_panel.jpg' alt='sfJobQueuePlugin管理ツール' /><br />
こんな、キューを管理するインターフェースがあるので、settings.ymlに宣言しましょう。</p>
<p>apps/[application]/config/settings.yml</p>
<div class="igBar"><span id="lcode-12"><a href="#" onclick="javascript:showPlainTxt('code-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-12">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">all:</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; .<span style="">settings</span>:</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; enabled_modules:&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#91;</span>default, sfJob, sfJobQueue<span style="color:#006600; font-weight:bold;">&#93;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
あとはキャッシュクリア（symfony cc）して<br />
「http://domain/[application].php/sfJobQueue」にアクセスすれば、管理画面が見れる。</p>
<p>最後に、ジョブを管理するデーモンのようなものを立ち上げておく必要があるようだ。</p>
<blockquote><p>symfony sfqueue-start-queuemanager [application]</p></blockquote>
<p>停止するには、上記プロセスをKILLしてしまえばよい。</p>
<h3  class="PostLine">ジョブタイプの作成</h3>
<p>まずは、処理させる内容（ジョブタイプ）を作成する。</p>
<p>作成するには、sfJobHandlerを継承して、runメソッドを実装したクラスを作成する。配置は、lib以下などにおいて置くと勝手にJobHandlerとして認識してくれる。また、呼び出し側からパラメータを受け取ることもできる。</p>
<p>あるパスの画像から、サムネイル画像を作成するサンプルは下記のような感じだ。</p>
<div class="igBar"><span id="lphp-13"><a href="#" onclick="javascript:showPlainTxt('php-13'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-13">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">class</span> sfMakeImageJobHandler extends sfJobHandler</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; public <span style="color:#000000; font-weight:bold;">function</span> getParamFields<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#616100;">return</span> <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'path'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; public <span style="color:#000000; font-weight:bold;">function</span> run<span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.php.net/array"><span style="color:#000066;">array</span></a> <span style="color:#0000FF;">$params</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; try</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$thumbnail</span> = <span style="color:#000000; font-weight:bold;">new</span> sfThumbnail<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC66CC;color:#800000;">150</span>, <span style="color:#CC66CC;color:#800000;">150</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$thumbnail</span>-&gt;<span style="color:#006600;">loadFile</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$params</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#FF0000;">'path'</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$thumbnail</span>-&gt;<span style="color:#006600;">save</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'/tmp/test.jpg'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">//TODO ユーザに通知メールとか！</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color:#616100;">return</span> sfJob::<span style="color:#006600;">SUCCESS</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; catch <span style="color:#006600; font-weight:bold;">&#40;</span>Exception <span style="color:#0000FF;">$e</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; throw <span style="color:#0000FF;">$e</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
「sfMakeImageJobHandler」というクラスを作成したが、実際にジョブを呼び出すときは、sfとJobHandlerが省略されて「MakeImage」と言う名前になる。</p>
<p>ちなみに、runメソッド内で、Exceptionをthrowすれば、管理コンソールのログからthrowしたものが見れる。またデフォルトでは、/tmp下に「sfJobQueuePlugin.log」というものがあり、Jobの実行状態を見ることができる。</p>
<h3  class="PostLine">キューの作成とジョブ</h3>
<p>上記のようなジョブタイプを呼び出す、キューとジョブの作成をする。</p>
<p>キューはUnixでいう、1プロセスのようなもので、同時処理したい場合は複数のキューを作成すればよい。そして、キューに対してジョブを複数結びつけることができる。</p>
<p>actionクラス等から簡単にキューの作成とジョブの結びつけができる。</p>
<p>キューの作成とジョブの結びつけサンプル</p>
<div class="igBar"><span id="lphp-14"><a href="#" onclick="javascript:showPlainTxt('php-14'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-14">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//キューの作成</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$queue</span> = <span style="color:#000000; font-weight:bold;">new</span> sfJobQueue<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$queue</span>-&gt;<span style="color:#006600;">setName</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'image queue'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$queue</span>-&gt;<span style="color:#006600;">setSchedulerName</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'fifo'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$queue</span>-&gt;<span style="color:#006600;">save</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//既存のキューを呼び出すにはキューの名前で呼び出す。</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$queue</span> = sfJobQueuePeer::<span style="color:#006600;">retrieveByQueueName</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'image queue'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//ジョブの結びつけ</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$queue</span>-&gt;<span style="color:#006600;">addJob</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'MakeImage'</span>, <a href="http://www.php.net/array"><span style="color:#000066;">array</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'path'</span> =&gt; <span style="color:#FF0000;">'/tmp/aaa.gif'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//すぐに実行！</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$queue</span>-&gt;<span style="color:#006600;">setRequestedStatus</span><span style="color:#006600; font-weight:bold;">&#40;</span>sfJobQueue::<span style="color:#006600;">RUNNING</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$queue</span>-&gt;<span style="color:#006600;">save</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>簡単に紹介したが、このほかにも実行のスケジューリングができたり、ロギングの操作、ジョブキューに利用するメモリの調整等の機能もある。</p>
<p>詳しくは公式のプラグインページで「<a href="http://trac.symfony-project.org/wiki/sfJobQueuePlugin" target="_blank">sfJobQueuePlugin</a>」</p>
<p>シンプルではあるが、なかなか使い道がありそうだ。</p>
<p>非同期処理は、Webのサーバサイド処理でかなり重宝されるのではないか。</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2008/07/19/sfjobqueueplugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2008/07/19/sfjobqueueplugin/" />
	</item>
		<item>
		<title>さくらインターネットでsymfonyをインストール</title>
		<link>http://ueblog.natural-wave.com/2008/06/15/sakura-symfony/</link>
		<comments>http://ueblog.natural-wave.com/2008/06/15/sakura-symfony/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 13:32:50 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programing]]></category>
		<category><![CDATA[symfony]]></category>
		<category><![CDATA[さくら]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/2008/06/15/sakura-symfony/</guid>
		<description><![CDATA[さくらインターネットでsymfonyをインストールしてみた。 さくらインターネットでもPHP5が利用できるようになっているので、さくらインターネットコントロールパネルの「PHPのバージョン選択」で、PHP5を選択しておこう。 インストールする]]></description>
			<content:encoded><![CDATA[<p>さくらインターネットで<strong>symfony</strong>をインストールしてみた。</p>
<p>さくらインターネットでもPHP5が利用できるようになっているので、さくらインターネットコントロールパネルの「PHPのバージョン選択」で、PHP5を選択しておこう。</p>
<p>インストールする場所を「$HOME/local」とする。sshでサーバに入り下記のディレクトリを作成。</p>
<blockquote><p>$ mkdir local/</p></blockquote>
<p>まずはPEARをインストールするために、スクリプトをダウンロードし実行。</p>
<blockquote><p>$ curl http://pear.php.net/go-pear > go-pear.php<br />
$ php go-pear.php</p></blockquote>
<p>下記のような選択となるので「1」のprefixのみを変更する。</p>
<blockquote><p> 1. Installation prefix ($prefix) : /home/[account名]/local<br />
 2. Temporary files directory     : $prefix/temp<br />
 3. Binaries directory            : $prefix/bin<br />
 4. PHP code directory ($php_dir) : $prefix/PEAR<br />
 5. Documentation base directory  : $php_dir/docs<br />
 6. Data base directory           : $php_dir/data<br />
 7. Tests base directory          : $php_dir/tests</p></blockquote>
<p>次にphp.iniの書き換えはできないので、「n」を選択。</p>
<blockquote><p>Would you like to alter php.ini </usr/local/php-5.2.5/lib/php.ini>? [Y/n] : n</p></blockquote>
<p>これでPEARのインストール完了。あとは自身のシェルを書き換え、新しくインストールしたpearコマンドにパスを通す。</p>
<blockquote><p>#bash,zshなら<br />
export PATH=/bin:<strong>$HOME/local/bin</strong>:$PATH<br />
#csh,tcshなら<br />
set path = (/sbin /bin <strong>$HOME/local/bin</strong> $HOME/bin /usr/local/bin)</p></blockquote>
<p>ポイントとしては、サーバにある「/usr/local/bin/pear」をよまないように、先に「local/bin」を設定している部分だ。</p>
<p>PATHを設定し、pearのバージョンを確認する。</p>
<blockquote><p>$ source ~/.zshrc<br />
$ pear -V<br />
PEAR Version: 1.7.2<br />
PHP Version: 5.2.5<br />
Zend Engine Version: 2.2.0</p></blockquote>
<p>PHPのバージョンが5になってれば正解だ。</p>
<p>ここから、symfonyのインストール</p>
<blockquote><p>$ pear channel-discover pear.symfony-project.com<br />
$ pear install symfony/symfony<br />
$ symfony -V<br />
X-Powered-By: PHP/5.2.5<br />
Content-type: text/html</p>
<p>symfony version 1.0.16</p></blockquote>
<p>これで完了！</p>
<h3>プロジェクトの作成</h3>
<p>さて、実際にプロジェクトの作成をしてみよう。</p>
<blockquote><p>$ mkdir -p ~/symfony/sample<br />
$ cd symfony/sample<br />
$ symfony init-project sample<br />
$ symfony init-app frontend
</p></blockquote>
<p>webディレクトリは公開ディレクトリ下に置かなければならないので、シンボリックリンクを利用する。</p>
<blockquote><p>$ ln -s ~/symfony/sample/web ~/www/sample</p></blockquote>
<p>さくらのコントロールパネルにある、「ドメイン設定」で利用したいドメインを「~/www/sample」へ向ける。</p>
<p>.htaccessでOptionsはさくらでは利用できないので、コメントアウトし、RewriteBaseのコメントをはずす。</p>
<blockquote><p>#Options +FollowSymLinks +ExecCGI<br />
RewriteBase /</p></blockquote>
<p>sfの画像やデバッグツールを利用するため、シンボリックリンクを作成。</p>
<blockquote><p>ln -s ~/local/PEAR/data/symfony/web/sf ~/symfony/sample/web/sf</p></blockquote>
<p>で、さくらのphp.iniが「magic_quotes_gpc=on」がデフォルトなので、コントロールパネルの「PHP設定の編集」で</p>
<blockquote><p>magic_quotes_gpc=off</p></blockquote>
<p>を書いておきましょう。</p>
<p>これで設定したドメインにアクセスすると、いつもの「Symfony Project Created」が拝めるでしょう。</p>
<p>パフォーマンスはどうなんでしょう？</p>
<p>感覚的には、<a href="http://ueblog.natural-wave.com/2007/10/31/sakura-ruby-on-rails/">さくらでRails</a>よりは幾分ましだけど、もっさり感はやっぱありますね。。</p>
<p>実用に耐えうるのか。何か作ってみてまた報告します。</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2008/06/15/sakura-symfony/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2008/06/15/sakura-symfony/" />
	</item>
		<item>
		<title>symfonyで携帯サイト用に出力を半角カナで統一</title>
		<link>http://ueblog.natural-wave.com/2008/06/07/symfony-hankana/</link>
		<comments>http://ueblog.natural-wave.com/2008/06/07/symfony-hankana/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 14:35:28 +0000</pubDate>
		<dc:creator>ueblog</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programing]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://ueblog.natural-wave.com/2008/06/07/symfony-hankana/</guid>
		<description><![CDATA[携帯サイトの場合、1行あたりの文字数を増やすため、カタカナは半角で揃えるのが定石。 というわけで、symfonyで気軽にHTML出力を半角カナで統一する方法を探る。 viewの出力時にすべてフィルターをかけるようなイメージでいたが、テンプ]]></description>
			<content:encoded><![CDATA[<p>携帯サイトの場合、1行あたりの文字数を増やすため、カタカナは半角で揃えるのが定石。</p>
<p>というわけで、symfonyで気軽にHTML出力を半角カナで統一する方法を探る。</p>
<p>viewの出力時にすべてフィルターをかけるようなイメージでいたが、テンプレートに直接書くものを半角カナで入力し、actionなどから出力されるオブジェクトに半角カナエスケープをかけるのがスマート？かと思い、作ってみた。</p>
<p>まずは、独自のカナHelper。</p>
<p>lib/helper/EscapingKanaHelper.php</p>
<div class="igBar"><span id="lphp-17"><a href="#" onclick="javascript:showPlainTxt('php-17'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-17">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">function</span> esc_entities_kana<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$value</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#0000FF;">$value</span> = <a href="http://www.php.net/mb_convert_kana"><span style="color:#000066;">mb_convert_kana</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$value</span>, <span style="color:#FF0000;">'k'</span>, <span style="color:#FF0000;">'UTF-8'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#616100;">return</span> <a href="http://www.php.net/is_string"><span style="color:#000066;">is_string</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$value</span><span style="color:#006600; font-weight:bold;">&#41;</span> ? <a href="http://www.php.net/htmlentities"><span style="color:#000066;">htmlentities</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$value</span>, ENT_QUOTES, sfConfig::<span style="color:#006600;">get</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'sf_charset'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> : <span style="color:#0000FF;">$value</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/define"><span style="color:#000066;">define</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'ESC_ENTITIES_KANA'</span>, <span style="color:#FF0000;">'esc_entities_kana'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
ESC_ENTITIES関数をそのまま流用し、mb_convert_kana関数を付け加えるような、helperを作成した。</p>
<p>そしてsettings.ymlで宣言する。</p>
<p>apps/config/settings.yml</p>
<div class="igBar"><span id="lcode-18"><a href="#" onclick="javascript:showPlainTxt('code-18'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-18">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">all:</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; .<span style="">settings</span>:</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; escaping_strategy:&nbsp; &nbsp; &nbsp; both</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; escaping_method:&nbsp; &nbsp; &nbsp; &nbsp; ESC_ENTITIES_KANA</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; standard_helpers:&nbsp; &nbsp; &nbsp; &nbsp;<span style="color:#006600; font-weight:bold;">&#91;</span>Partial, Cache, Form, EscapingKana<span style="color:#006600; font-weight:bold;">&#93;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>テンプレートに直接、全角カナを書かれてしまうと、統一されないのが難点。</p>
<p>やっぱFilterかな。。</p>
]]></content:encoded>
			<wfw:commentRss>http://ueblog.natural-wave.com/2008/06/07/symfony-hankana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://ueblog.natural-wave.com/2008/06/07/symfony-hankana/" />
	</item>
	</channel>
</rss>

