<?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/"
	>

<channel>
	<title>BPS株式会社 開発ブログ Beyond Perspective Solutions LTD. &#187; Zend Framework</title>
	<atom:link href="http://www.bpsinc.jp/blog/archives/category/framework/zend-framework/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bpsinc.jp/blog</link>
	<description>BPS株式会社（Beyond Perspective Solutions）のプログラマによる技術・開発などに関してのブログです</description>
	<lastBuildDate>Wed, 20 Jul 2011 08:14:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>いちばん簡単なJSON</title>
		<link>http://www.bpsinc.jp/blog/archives/984</link>
		<comments>http://www.bpsinc.jp/blog/archives/984#comments</comments>
		<pubDate>Thu, 14 Jan 2010 23:31:28 +0000</pubDate>
		<dc:creator>baba</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[馬場]]></category>
		<category><![CDATA[JSON]]></category>

		<guid isPermaLink="false">http://www.bpsinc.jp/blog/?p=984</guid>
		<description><![CDATA[Ajaxを使う際、PHP側からJSON形式の値を出力したいことは良くあると思います（入力はだいたいPOSTで事足りますね）。
PHPでJSON形式の値を出力したい場合、いちばん簡単なのはjson_encode()です。
 [...]]]></description>
			<content:encoded><![CDATA[<p>Ajaxを使う際、PHP側からJSON形式の値を出力したいことは良くあると思います（入力はだいたいPOSTで事足りますね）。</p>
<p>PHPでJSON形式の値を出力したい場合、いちばん簡単なのはjson_encode()です。</p>
<pre class="brush:php">
//本来はheaderなども正しく処理した方が良いが省略
$list = array('apple', 'orange', 'banana');
echo json_encode($list);
</pre>
<p>ただし、json_encode()はPHP 5.2.0以上の関数なので、それ未満の環境だとundefined functionでエラーになります。<br />
<a href="http://php.net/manual/en/function.json-encode.php">http://php.net/manual/en/function.json-encode.php</a></p>
<p>リリース後にPHPのバージョン違いに気がついた可哀想な人には、Zend_Jsonがおすすめです。<br />
まずは<a href="http://framework.zend.com/download/current/">Zend Frameworkのページ</a>からZend Frameworkをダウンロードします（minimalでOK）。</p>
<p>そして、回答したフォルダのZend/Json.phpと、Zend/Jsonフォルダをinclude_pathが通ったフォルダにコピーします。</p>
<p>あとは、コード内で</p>
<pre class="brush:php">
require_once 'Zend/Json.php';
$list = array('apple', 'orange', 'banana');
echo Zend_Json::encode($list);
</pre>
<p>とやるだけ。<br />
関数の名前が変わるだけで、同じ使い勝手が実現できていますね。これなら一括置換も簡単。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpsinc.jp/blog/archives/984/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend_Loaderがparent.phpを読もうとする</title>
		<link>http://www.bpsinc.jp/blog/archives/278</link>
		<comments>http://www.bpsinc.jp/blog/archives/278#comments</comments>
		<pubDate>Wed, 29 Jul 2009 09:41:37 +0000</pubDate>
		<dc:creator>baba</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[馬場]]></category>

		<guid isPermaLink="false">http://www.bpsinc.jp/blog/?p=278</guid>
		<description><![CDATA[Zend Frameworkを使い始めました。
いちいちファイルをrequire_onceするのは面倒なので、Autoloaderを使います。

$autoloader = Zend_Loader_Autoloader: [...]]]></description>
			<content:encoded><![CDATA[<p>Zend Frameworkを使い始めました。</p>
<p>いちいちファイルをrequire_onceするのは面倒なので、Autoloaderを使います。</p>
<pre class="brush:php">
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader-&#62;setFallbackAutoloader(true);
</pre>
<p>また、Zend_Db_Tableのfindがrowsetを返すのが気にくわないため、findOne()を実装することにします。</p>
<pre class="brush:php">
class App_Db_Table extends Zend_Db_Table_Abstract
{
	public function findOne()
	{
		$args = func_get_args();
		$result = call_user_func_array(array($this, 'parent::find'), $args);
		return $result-&#62;current();
	}
}
</pre>
<p>parentのfindを呼ぶとき、<br />
call_user_func_array(array(&#8217;parent&#8217;, &#8216;find&#8217;), $args);<br />
とすると、E_STRICTなPHP5では、staticでない関数をstaticに呼び出したと言われてエラーになります。<br />
なので、このように<br />
call_user_func_array(array($this, &#8216;parent::find&#8217;), $args);<br />
と呼び出すわけですが、</p>
<p>Zend_Loaderがあまり賢くないので、parent:: を見て<strong>parent.phpを探しに行ってしまいます</strong>。</p>
<p>Warning: include(parent.php) [function.include]: failed to open stream: No such file or directory in &#8230;</p>
<p>Zendのフォーラムでも同じ症状の人がいましたが、これという解決案は見つからないみたいなので、<br />
Zend/Loader.php:83行目<br />
include $file<br />
を<br />
@include $file<br />
に変えてめでたしめでたし。</p>
<p>なんだかなぁ。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpsinc.jp/blog/archives/278/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

