<?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>WIDGET-INFO &#187; File</title>
	<atom:link href="http://blog.widget-info.net/tag/file_class/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.widget-info.net</link>
	<description>WIDGET-INFOではCakePHPやIPhone情報、その他開発に関する情報を発信</description>
	<lastBuildDate>Sat, 24 Dec 2011 20:47:30 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.widget-info.net/tag/file_class/feed/" />
		<item>
		<title>CakePHP　テーブル情報の削除</title>
		<link>http://blog.widget-info.net/2009/10/cakephp_cache_detabase_del/</link>
		<comments>http://blog.widget-info.net/2009/10/cakephp_cache_detabase_del/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 23:21:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cache]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Controller]]></category>
		<category><![CDATA[Model]]></category>
		<category><![CDATA[その他クラス]]></category>
		<category><![CDATA[File]]></category>
		<category><![CDATA[データベース]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=318</guid>
		<description><![CDATA[CakePHPではデータベースのテーブル情報をキャッシュしてくれる機能があります。]]></description>
			<content:encoded><![CDATA[<p>CakePHPではデータベースのテーブル情報をキャッシュしてくれる機能があります。<br />
「app/config/core.php」内の設定で「Configure::write(&#8216;Cache.check&#8217;, true);」を<br />
適用していると生成されませんが、「app/tmp/cache/models」に<br />
データベースのテーブル情報がキャッシュとして保存されていきます。<br />
<span id="more-318"></span></p>
<p>これはテーブル情報をキャッシュすることで、フォームヘルパーなどでも利用される情報でもあり<br />
大変便利な機能ではあります。<br />
しかし気をつける点があり、「app/config/core.php」内の設定で「Configure::write(&#8216;debug&#8217;, 0);」の設定を<br />
1以上であれば、テーブルの情報を変更しても問題は無いのですが<br />
0を指定(デバック無し)にしてテーブル情報を変更すると、変更したテーブルのフィールド情報が取得されない現象が起こります。<br />
詳しい内容は割愛させていただきますが、まぁあたりまえな話でもあります。</p>
<p>しかし、ここで問題となるのが作成するアプリケーションの機能で、任意のタイミングにテーブル情報を変更するような<br />
動的テーブルが存在するアプリケーション設計に問題が発生するかと思います。<br />
その場合、キャッシュとして保存されたテーブル情報を一度削除をしなければ、変更された状態のテーブル情報を<br />
取得することができなくなり、「find()」などでも問題となってしまいます。</p>
<p>そこで削除する方法を探してみました。<br />
単純にCakePHPには定数の「CACHE」であるキャッシュディレクトリへのパスがあるので<br />
その定数を使って削除する方法がありますが、無駄なコーディングが増えるので<br />
CakePHPの内部を調べてテストしてみたところ発見！1行のコーディングで削除できます。</p>
<p>削除するためのコーディングはこちら</p>
<pre class="brush:php">Cache::delete('ファイル名','_cake_model_')</pre>
<p>ここで注意することは指定する「ファイル名」です。<br />
この名称の指定はキャッシュ機能が「File」エンジンを利用して、設定を変更していない場合は<br />
ファイル名のプレフィックスとして「cake_model_」が自動でつきます。<br />
「ファイル名」の指定は、例えばデータベースへの接続が「default」でテーブル名が「users」の場合は<br />
「ファイル名」を「default_users」となります。</p>
<p>これでテーブルが動的な設定でもCakePHPを問題なく利用できかと思います。
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.widget-info.net%2F2009%2F10%2Fcakephp_cache_detabase_del%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2009/10/cakephp_cache_detabase_del/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.widget-info.net/2009/10/cakephp_cache_detabase_del/" />
	</item>
		<item>
		<title>CakePHP　Fileクラスのその他機能</title>
		<link>http://blog.widget-info.net/2009/09/cakephp_file_class_other/</link>
		<comments>http://blog.widget-info.net/2009/09/cakephp_file_class_other/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 21:33:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[File]]></category>
		<category><![CDATA[その他クラス]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=208</guid>
		<description><![CDATA[前回ではCakePHPのFileクラスの機能を紹介しましたが続いてよく使いそうな機能をピックアップしてみます。]]></description>
			<content:encoded><![CDATA[<p>CakePHPのFileクラスについて、また少し。。。</p>
<p>前回ではCakePHPのFileクラスの機能を紹介しましたが<br />
続いてよく使いそうな機能をピックアップしてみます。<br />
全部で11個程ですが（汗<br />
<span id="more-208"></span><br />
ではまず1つ目</p>
<pre>delete()</pre>
<p>セットされているファイルの削除を行います。</p>
<pre>ext()</pre>
<p>セットされているファイルの拡張子を取得します。</p>
<pre>name()</pre>
<p>セットされているファイル名を取得します。</p>
<pre>exists()</pre>
<p>セットされているファイルが存在するかどうか調べます。</p>
<pre>size()</pre>
<p>セットされているファイルのサイズを取得します。</p>
<pre>writable()</pre>
<p>セットされているファイルが書き込み可能かどうかを調べます。</p>
<pre>executable()</pre>
<p>セットされているファイルが実行可能かどうかを調べます。</p>
<pre>readable()</pre>
<p>セットされているファイルが読み込み可能かどうかを調べます。</p>
<pre>owner()</pre>
<p>セットされているファイルの所有者を取得します。</p>
<pre>group()</pre>
<p>セットされているファイルのグループを取得します。</p>
<pre>lastAccess()</pre>
<p>セットされているファイルの最終アクセス時刻を取得します。</p>
<pre>lastChange()</pre>
<p>セットされているファイルの更新時刻を取得します。</p>
<p>とまぁ長々とですが、よく使いそうなものをピックアップしてみました。<br />
参考になればと（汗
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.widget-info.net%2F2009%2F09%2Fcakephp_file_class_other%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2009/09/cakephp_file_class_other/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.widget-info.net/2009/09/cakephp_file_class_other/" />
	</item>
		<item>
		<title>CakePHP　Fileクラスの利用</title>
		<link>http://blog.widget-info.net/2009/09/cakephp_use_fileclass/</link>
		<comments>http://blog.widget-info.net/2009/09/cakephp_use_fileclass/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 17:07:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[File]]></category>
		<category><![CDATA[その他クラス]]></category>

		<guid isPermaLink="false">http://blog.widget-info.net/?p=204</guid>
		<description><![CDATA[CakePHPではファイルを開いたり閉じたりを処理してくれるクラスがあります。PHPでは「fopen」などを利用しますが]]></description>
			<content:encoded><![CDATA[<p>CakePHPではファイルを開いたり閉じたりを処理してくれるクラスがあります。<br />
PHPでは「fopen」などを利用しますが、その処理をフレームワークに任せてしまうのも<br />
ひとつの手かと思います。</p>
<p>ではまず「File」クラスを利用する方法を。。。<br />
<span id="more-204"></span><br />
「File」クラスを利用するには、このクラスを変数に格納しなければ利用できません。<br />
コントローラーやモデルのように「$this-&gt;」みたいな使い方ではないのでご注意を（汗</p>
<p>とはいってもコーディングは簡単です（笑<br />
利用するには</p>
<pre>$fileClass=new File('ファイルへのパス');</pre>
<p>だけです。<br />
クラス自体はCakePHPを実行している段階で読み込みをしているため<br />
変数に対してクラスを指定するだけで利用できるようになります。<br />
第1引数では利用するファイル名を絶対パスまたは相対パスで指定します。<br />
また複数のファイルの場合は再度同じように記述することで何度も利用できます。</p>
<p>続いてセットされたファイルを読み込むためには続いて</p>
<pre>$fileClass-&gt;read();</pre>
<p>と記述するのみです。<br />
読み込みが正しく行われれば返り値には指定ファイルを内容を、<br />
失敗した場合は「false」が返されます。<br />
「read()」には引数が用意されています。</p>
<p>通常では指定する必要はありませんが指定する場合は次のようになっています。</p>
<p>第1引数では読み込みを行うファイルの読み込み量を指定します。<br />
PHP関数の「fread」の第2引数に値します。<br />
指定が無い場合はCakePHP側で自動処理します。</p>
<p>第2引数では読み込みの指定方法を指定します。<br />
指定とはPHP関数の「fopen」の第2引数「ｒ」や「ｗ」などに値します。</p>
<p>まずは基本を記述してみましたが、とりあず今回はここまでとします（笑
<div class="fblike_button" style="margin: 10px 0;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.widget-info.net%2F2009%2F09%2Fcakephp_use_fileclass%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.widget-info.net/2009/09/cakephp_use_fileclass/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.widget-info.net/2009/09/cakephp_use_fileclass/" />
	</item>
	</channel>
</rss>

