<?xml version="1.0" encoding="UTF-8"?><rss version="0.92">
<channel>
	<title>アストロデオブログ</title>
	<link>http://astrodeo.com/blog</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 11 Jul 2011 01:38:11 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>ja</language>
	<!-- generator="WordPress/3.1.2" -->

	<item>
		<title>静的HTMLでHTMLファイルを読み込む</title>
		<description><![CDATA[PHPでページを生成する場合は、共通部分は別のファイルに作って、そいつをincludeなりrequireなりしてあげれば簡単なんですけど、HTMLファイルの場合はそうはいかない。SSIが使えるサーバーとかだと以下のような記述で読み込めるらしいけど、SSIが使えない場合もたまにはあるわけで、そういうときにどうすればいいか。 //SSIが使える場合 そこでご紹介したいのが、こちらのサイトさん Javascriptを使って、静的HTMLの中でファイルをインクルードするソースを公開されています。 使い方は簡単。上記のサイトにある関数を記述したjsファイルを作成するなりHTML内に書くなりして、あとは必要な部分で関数を呼び出すだけ。 //～内 include("sample.html"); たったこれだけです。ヘッダーとかフッターとか、全ページで共通して表示させるような部分をこれで外部ファイルにしておけば、静的ページの作成も楽になりますね。 今までは、共通部分を一ヶ所直すたびに全ファイルを直すとかいう効率の悪いことをしてたんですけど、今度からはこれで行かせていただこうとを思います。 むしろもっと早くに調べとくんだったよ……バカ。 注：ブラウザによっては動かない場合もあるっぽいです。僕の使ってるOperaでは動かなかった。他にもformが動かないなどの報告もあるみたいなので、運用レベルでの使用ではなく、モックの作成などに活用するのが良いかもしれません。 あるいはこのソースを改良して動くようにするとか、でしょうか。]]></description>
		<link>http://astrodeo.com/blog/archives/1650</link>
			</item>
	<item>
		<title>ApacheとSkepeを仲良くさせる方法</title>
		<description><![CDATA[先日、うちのデザイナーさんがPCにxamppを入れる作業を行ったときのことなんですが、無事にインストールするところまでは良かったんですけど、いざ起動させようとしたところ、いつまで経ってもApacheが起動しない。 それを見ていた僕も、何でだろうな～と思っていたんですが、ふと振り返ってみると、僕も昔、まだ「xampp？　何それ？　おいしいの？」とか思っていた頃に、同じような罠にはまったことがあったな～ってことを思い出しました。 結論から言うと、Apacheがデフォルトで使用するポートである80番が他のアプリケーションに使われているせい。 よくあるのは、というか僕が知っているのは、SkypeがPCに入っていると、ポート80が使われていることがあります。 昔の「xampp？　ああ、あれでしょ？　人生はチョコレートの箱だ的なあれでしょ？」とか思っていた頃の僕は、そんなこと露知らず、とりあえずSkypeのせいでApacheが動かないってことが分かった時点で、とりあえずSkypeをアンインストールしたりとかいろいろやった挙句に結局使えなかったんですけど、知ってしまえば、この解決方法は至って簡単だったりします。 Skypeを開くと、ツールの中に設定ってのがあると思うんですけど、その中の詳細設定で、Skypeが使用するポートを80以外にできるようなんです。 ツール　＞　設定　＞　詳細　＞　接続 の順で追っていくと、こんな項目にチェックがついてると思うんですよ。 【上記のポートに代わり、ポート80を使用】 ってなわけで、このチェックを外してSkypeを再起動すれば、Apacheが普通に起動するようになるって寸法ですね。 いや～、今回は俺も勉強になったわ。]]></description>
		<link>http://astrodeo.com/blog/archives/1647</link>
			</item>
	<item>
		<title>MySQLでdecimalを使うときの注意点</title>
		<description><![CDATA[たいした話ではないんですが、僕自身がちょいと勘違いをしていたことがあったので、備忘録的なメモってことで……。 MySQLで少数を扱うようなとき、型にdecimalを使うことがあるかと思います。 decimalの場合、桁数を(M,D)の形で指定します。内訳は以下の通りです。 M…扱う少数の最大桁数 D…小数点以下の桁数 例えば、(6,3)という桁数を指定したら、全体で6桁、小数点以下は3桁、という解釈になります。123.456みたいな数値を扱えることになりますね。 僕はそこをちょっと勘違いしてて、上記でいうところのMっていうのは、小数点以上の桁数の指定だと思ってました。だから(6,3)って指定したら、123456.789みたいな数値を扱う状態になるのかなという認識でした。 先日、decimalの桁数を(3,3)で指定して、0～100のパーセンテージを持つカラムを作成したんですけど、どんなにデータを入れてもレコードの中が『0.999』にしかならなくて、おかしいなぁと思っていたんです。 原因は桁数の指定の間違いにありました。(6,3)に直したら解決しました。 もし、僕と同じ間違いをしている人がいたら、この記事が参考になれば幸いです。 ってか、一人くらいはいてほしいな……世界中でそんな勘違いをしたのが俺だけってのも、さびしいし恥ずかしいし……。]]></description>
		<link>http://astrodeo.com/blog/archives/1643</link>
			</item>
	<item>
		<title>PHP5.3で昔のCakePHPをソースをいじったら</title>
		<description><![CDATA[アストロデオのHPがリニューアルしました！ おめでとうございます！！　ありがとうございます！！ ま、僕は今回な～んもしてないです。みんなが頑張ってデザイン組んだりカメラ持って撮影してる横で笑ってただけです。ニコニコ動画で抱腹絶倒な動画を見て文字通り腹を抱えて笑っていただけです。 一人だけ何もしてないとか感じ悪いんで、今日のところは僕がブログを更新してリニューアル作業に花を添えたいと思います。 ここんとこ更新もサボリ気味でしたしね。またちょいちょい更新を頑張っていけたらいいんですか？ それに何といっても今日は5月11日で切れ目も良いですからね。心機一転するにはちょうど良いかもしれんです。 今日、5月11日は「技術の日」なんですよ。だから技術者の我々に取っちゃある意味一つの節目の日なんですよ。 まあ、どうして今日が技術の日なのかってのは、核実験に由来するらしいんで、IT的な技術に携わる僕らにはあまり関係ないんですけどねｗｗ とはいえ、最近は何か技術的な考察があったときにはここじゃなくて個人ブログの方に書くようにしてたので、とりわけ今ここで書くことってないんですよね……せっかく意気込んだところあれなんですけど。 だから、すっごい今さらなんだけどずっと書くのを忘れてたことをまた忘れないうちに書いとこうと思います。本当に今さらなんだけど、もしかしたらいつか誰かの役に立てるかもしれない。 以前、PHP5.3でEC-CUBEを動かしたら何やら大変なことが起きたぞってな記事を書きましたが、CakePHPでも同様なことが起こりました。 Deprecated: Assigning the return value of new by reference is deprecated in　～ ↑こんな感じのエラー。まあ原因も前回と同じで、PHPのバージョンが新しくなったのが原因です。昔に作ったサイトを手直ししようとしてローカル環境で見ると、こんなエラーが出ることがあるようです。 CakePHPの場合の解決方法は、cake/libsフォルダの中にあるconfigure.phpのwriteメソッドをいじればおｋです。 if (isset($config['debug'])) { if ($_this->debug) { error_reporting(E_ALL); //このif文を追加 if(error_reporting() > 6143) { error_reporting(E_ALL &#038; ~E_DEPRECATED); } if (function_exists('ini_set')) { ini_set('display_errors', 1); } if (!class_exists('Debugger')) { require LIBS . 'debugger.php'; } [...]]]></description>
		<link>http://astrodeo.com/blog/archives/1634</link>
			</item>
	<item>
		<title>CakePHPのコントローラー名が……</title>
		<description><![CDATA[ここ最近はフレームワークを使ってないPHPのサイトの改修をしたりEC-CUBEをカスタマイズしたり現場に出向して使ったことのないSymfonyをいじったりしていたので、CakePHPを使うのは久しぶりです。 で、別に久しぶりだからとかそんなのは一切関係ないんですが、今度新しく作るサイトで、ファイルを管理したり登録する画面があるんですね。だからコントローラー名をこんな感じにしたんですが…… ファイル名：files_controller.php クラス名：FilesController これで作ったページにアクセスすると、以下のようなエラーが出ました。 Warning (2): dirname() expects parameter 1 to be string, array given in [C:\xampp\htdocs\gallery\cake\libs\file.php, line 100] Warning (2): is_dir() expects parameter 1 to be string, array given in [C:\xampp\htdocs\gallery\cake\libs\file.php, line 101] Warning (2): basename() expects parameter 1 to be string, array given in [C:\xampp\htdocs\gallery\cake\libs\file.php, line 102] まあ何だかよく分かんないんですけど、コントローラー名がFilesだったのがどうもいけなかったみたいで、ファイル名やクラス名を別なのにしたら出なくなりました。 正直焦ったね。久しぶり過ぎて……っていっても1ヶ月半くらいなもんですが、全くCakePHPに触ってなかったから、どっか最初に設定しなきゃいけないところを設定し忘れてるんだろうかって。もうCakePHPの使い方忘れちまったのかよって。一緒にハポンに帰ろうっていう約束はどこｎ たぶん、fileとかobjectとかvalidateとか、コアの方にあるファイル名と同じようなのをコントローラー名にするとダメってことなんじゃないでしょうか。確認はしてないですけど。]]></description>
		<link>http://astrodeo.com/blog/archives/1630</link>
			</item>
	<item>
		<title>PHP5.3でEC-CUBEを動かしたら</title>
		<description><![CDATA[今さら感全開な記事ではあるんですが、久しぶりにEC-CUBEの案件を担当したので、ちょうどいいかなと思いました。 とあるタイミングで、まあ随分前の話なんですが、一度xamppをインストールし直したんですね。し直したっていうか、パソコンを新しくしたので入れ直したって言った方が正しいと思うんですけど。 そしたら、EC-CUBEのプロジェクトを開いたときに何やらよく分からないエラーが大量に出たんですよ。 Deprecated: Assigning the return value of new by reference is deprecated in　～ みたいな感じのエラー。これはどうやらPHP5.3の環境だと出るらしくて、ようはPHPのバージョンが新しくなってんぞこの野郎的なエラーってことです。CakePHPでも同じようなエラーが出ました。昔のプロジェクトとかを開くと、もんのすごい量のエラーが出る。 対処法は簡単で、error_reportの設定をちょいちょいと書きかえれば大丈夫のようです。 data/classにあるSC_Initial.phpファイルの中でエラーレベルの設定を行っている部分があります。たぶん100行目あたり。そこを書き換えてあげればいいようです。 function setErrorReporting() { //こいつをコメントアウト // error_reporting(E_ALL &#038; ~E_NOTICE); //こっちに書き換え error_reporting(E_ERROR &#038; ~E_NOTICE &#038; ~E_PARSE); } 原因が分かってしまえば何てことないですけど、今まで動いてたのがいきなり大量のエラーを吐き出すようになったら、ちょっと焦るよね。 「うおいっ！　俺が何したよ！？」ってね。]]></description>
		<link>http://astrodeo.com/blog/archives/1627</link>
			</item>
	<item>
		<title>さくらサーバーでのhtaccessの設定</title>
		<description><![CDATA[まあ、さくらサーバーだけなのかどうかはちょっと分からないんですが……。 先日、いつものようにCakePHPで開発を行って、いざサーバーにファイルをアップして動作を確認って段階に来た時に、いつもと同じようにファイルのアップをして必要な設定を行ったつもりだったんですが、Internal Server Errorが出たんですよ。 今までも同じような目にあった……ような気がしなくもないんですが、でもさくらサーバーには結構何度もCakeで作ったものを置いてるので、それであまり記憶に残ってないってことは、普段はInternal Server Errorにはなってないはずだと思うんですよね。俺の記憶力がよっぽどきてない限りは。 でもそれが出た。 だいたいこういうときは.htaccessに問題があると相場が決まっているので、.htaccessの設定のどこがおかしいかをとりあえず洗ってみたんですが、結論からいうとやはり.htaccessの設定に問題があったせいでInternal Server…って、これ毎回書くのめんどいな。次から500エラーって呼ぶわ。次に呼ぶ機会があればね。 調べたところ、さくらサーバーでCakeを動かす場合は、ちゃんとRewriteBaseを書かないといけないらしい。 RewriteEngine On RewriteBase /　　　　]]></description>
		<link>http://astrodeo.com/blog/archives/1625</link>
			</item>
	<item>
		<title>PHPでUNIXコマンドを使う</title>
		<description><![CDATA[前に、忘れないようにブログに書いとこうと思っていたのをすっかり忘れていたことを唐突に思い出したので、また忘れてしまう前に書きとめとこうと思います。 コマンドを使って直接ファイルを操作したい。でもSSHの情報をもらってないからTeratermとかは使えない。 そんなときは、PHPからコマンドを使えば良いようです。 例えば、UNIXコマンドでディレクトリの中身を見る『ls』 これをPHPで使うなら、こう↓ 圧縮ファイル(たとえばzip)を作るなら、こう↓ //test_dirというディレクトリをzipに圧縮 作った圧縮ファイルを解凍するなら、こう↓ 要はこのsystem()って関数を使えば良いってことですね。引数に普段SSHなどで実行してるコマンドをそのまま書いてやれば動くと、そんな感じです。 先日、まさにファイルを圧縮して解凍したい状況に出会いまして、でもSSHの情報を先方さんからもらってないからコマンドを打つことができなくて、こんなときどうすんのかな～と思ってたら、横の人が「PHPから直接コマンド叩けばええやん」って言ったんですけど、ぶっちゃけ何言ってんだかさっぱり分かりませんでした。何のことか分からないから、素直にそんなことができるのかと聞き返したら「システム関数を使えばええんやで」って言われて、もっと分からなくなりました。 こういう関数があったんですね。 いやはや、まだまだ知らないことが多過ぎですわい。]]></description>
		<link>http://astrodeo.com/blog/archives/1623</link>
			</item>
	<item>
		<title>ヘルパーでほかのヘルパーのメソッドを使う</title>
		<description><![CDATA[自分で独自ヘルパーを作ったときに、そのメソッドの中でHTMLヘルパーやFormヘルパーのメソッドを使いたい場合が、あったりしますよね。僕はわりとよくあります。 そんなときは、コントローラーでヘルパーの設定をするのと同じ方法を、ヘルパー内でもやれば使えるようになるらしい。 class UtilHelper extends AppHelper { //読み込むヘルパーを設定する var $helpers = array('Html', 'Form'); function test1() { return $this->Html->link('test', '/'); } function test2() { return $this->Form->text('name'); } } こんな感じ。 いやー、これは知りませんでした。だから自分でヘルパーを作ったときに他のヘルパーを使いたいときは、そいつを継承してました。 App::import('Helper', 'Html'); class UtilHelper extends HtmlHelper { function test() { return $this->Html->link('test', '/'); } } だからHTMLヘルパーとFormヘルパーの両方を使うようなときは、どうしようもないじゃんって思って、常に片方をあきらめてました。 でもこれからはあきらめなくて良いんだ。 バンザーイ。]]></description>
		<link>http://astrodeo.com/blog/archives/1617</link>
			</item>
	<item>
		<title>wordpress　で複数サイトで記事共有</title>
		<description><![CDATA[wordpressでサイトAとサイトBがあって、 両方デザインだけ変えて記事は共有したかった。 それぞれのサイトにとりあえずインストールして、 テーマだけそれぞれ作成した。 その後、サイトAのDBに、サイトBからアクセスできるようにして、 サイトBのほうで下記みたいなことをしてみた。 add_action( 'init', 'test' ); function test(){ global $wpdb; $wpdb = new wpdb('サイトAのDBユーザ' , 'サイトAのDBパスワード','サイトAのDB名','サイトAのホスト'); $wpdb->set_prefix('サイトAのプレフィックス'); } とりあえずこれで、サイトBで設定したテーマかつ、 サイトAの記事が表示されるようにはなった。 サイトBの管理画面に入れなくなったので、 管理画面のURLとログインURLの時はwpdbを新規に作らないようにした。 とりあえずローカルではうまくいってる。 もっと良い方法があるきがするなぁ。 そもそもアクションもinitよりいいのがある気がする。]]></description>
		<link>http://astrodeo.com/blog/archives/1610</link>
			</item>
</channel>
</rss>

