※ パクレゼルヴではWeb開発エンジニアを大募集中!詳細はこちら

Archive

Author Archive

コーディングルール  

2010/6/8 火曜日 17:35:14

皆さん、コードを書くときコーディングルールを気にしますか?
自分は気にしてませんダメな人ですね。

ということで、好きなフレームワークCodeIgniterの例にならって、まとめ的に書きとめようと思う。

◆クラス名・メソッド名
クラス名は常に最初の文字を大文字にしなければいけません。コンストラクタメソッドはクラス名と同じにします。
メソッド名は、すべて小文字にして動詞など含めてわかり易い名前にするべきです。

間違い:
class superclass
class SuperClass

正しい:
class Super_class

間違ったメソッド名と正しいメソッド名

間違い:
function fileproperties()		// 表現がわかりにくく、アンダースコアが抜けている
function fileProperties()		// 表現がわかりにくく、キャメルケースが使われている
function getfileproperties()		// ベター! しかしながら可読性に欠ける
function getFileProperties()		// キャメルケースが使われている
function get_the_file_properties_from_the_file()	// 長過ぎる

正しい:
function get_file_properties()	// 説明的、アンダースコア、全て小文字

◆変数名
変数名はクラス名とほぼ同じ。「$p」とか単語になっていないものはループ変数のみにつかいます。

◆定数
定数は変数とほぼ同じ。だけど、例外として大文字のみを使用します。

◆TRUE、FALSE、NULL
常に大文字を使用します。

◆論理演算子
「||」は解像度の低いデバイスでは良く見えなく「11」に見えてしまうことがあることから「OR」を使用する。

間違い:
if ($foo || $bar)
if ($foo AND $bar)  // 問題無いがアプリのシンタックスハイライト機能にはお勧めできない
if (!$foo)
if (! is_array($foo))

正しい:
if ($foo OR $bar)
if ($foo && $bar) // 推奨
if ( ! $foo)
if ( ! is_array($foo))

◆インデント
Allman スタイルのインデントを利用します。クラス宣言を除いて、括弧は常に1行に単独で配置し、その制御ステートメントと同じ深さにインデントします。

間違い:
function foo($bar) {
	// ...
}

foreach ($arr as $key => $val) {
	// ...
}

正しい:
function foo($bar)
{
	// ...
}

foreach ($arr as $key => $val)
{
	// ...
}

◆括弧の前後のスペース
一般的に、括弧の前後にはスペースを追加すべきではありません。
例外として、括弧内に引数を記述する PHP 制御構造(if,switch,for,while等)では、関数と区別しやすくしたり可読性を高めるために、常にスペースを配置すべきです。

間違い:
$arr[ $foo ] = 'foo';

正しい:
$arr[$foo] = 'foo'; // 配列のキーの前後には空白を入れません

間違い:
function foo ( $bar )
{

}

正しい:
function foo($bar) // 関数定義の括弧の前後には空白を入れません
{

}

間違い:
foreach( $query->result() as $row )

正しい:
foreach ($query->result() as $row) // PHPの制御構造の後ろには空白を1つ入れますが、中の括弧には入れません

◆PHPエラー
コードはエラーを起こさず、潜在的なWARNINGやNOTICEもなく動作するようにしましょう。
例えば、最初にisset()で確かめずに($_POST配列のキーのような)未定義の変数を使わないようにしてください。

あくまでチラシの裏ですので、人それぞれのコーディングルールなので、特に決まりごとが無ければやりやすい方法でやるべきかとー。

下音タヌキ PHP

配られたカードで勝負するしかねぇんだ  

2010/5/6 木曜日 12:06:30

自分が普段使っているレンタルサーバーはセキュリティ云々のおかげで「.forward」ファイルを設置することが出来ない。
でも、空メールの処理を入れたいので、どうしようか悩んだ結果。
無理やりPOP3に繋いで処理すりゃいいじゃんという結論に。

今回のサーバーにはNET_POP3のPearライブラリが入っているので、これを使うことに。
入ってない場合は適当にコマンド打ってインストールでもすればいいと思うよ。

pear install Net_POP3

で、簡単に処理を書く。

require 'Net/POP3.php';

$pop3 = new Net_POP3();

$ret = $pop3->connect("host", 110);
if (!$ret){
	$pop3->disconnect();
	exit;
}

$pop3->login("id", "ps", true);

$ret = $pop3->numMsg();
if (!$ret || $ret == 0){
	$pop3->disconnect();
	exit;
}

print "$ret : メッセージ件数<br />\n";

$ret = $pop3->getListing();
$i = 1;
if ($ret !== false){
	$pop3->disconnect();
	exit;
}
foreach($ret as $key => $val){
	// 中身の処理
	$pop3->deleteMsg($val['msg_id']);
}
$pop3->disconnect();

これを適当にcronで回して処理してれば「.forward」的な処理が出来るかなー。
\e

下音タヌキ PHP

今流行のbit.lyを使ってみる  

2010/4/20 火曜日 15:48:53

相変わらずtwitterが流行ってますね。
認知率は9割にも及ぶけど登録率は1割程度という悲しい現状。
投稿文字数が140文字という制限のなか、長ったらしいURLを記述するのは厳しいこと。
なので、bit.lyを使ったURL短縮サービスの利用がよく見られます。

ということで、JSONを使って動的に短縮URLを取得して、tweetさせるページに飛ばしてあげるサンプル。

<script type="text/javascript">//< ![CDATA[
function tweet() {
	bitly = 'http://api.bit.ly/shorten'
		+ '?version=2.0.1&format=json&callback=callback'
		+ '&login=' + 【loginID】
		+ '&apiKey=' + 【apiKey】 + '&longUrl=';
	var script = document.createElement('script');
	script.type = 'text/javascript';
	script.src = bitly + encodeURIComponent(location.href) ;
	document.body.appendChild(script);
}
function callback(bitlyResponse) {
	var url = 'http://twitter.com/home/?status='
		+ encodeURIComponent(
		'コメント' + ' ' + bitlyResponse.results[location.href]['shortUrl']
		);
	window.open(url);
}
//]]>
</script>

<input type="button" onclick="tweet()" value="ついーと"/>

callback関数の「window.open(url);」を「location.href=url」にすると同じページで開かれるようになります。
また、bit.lyのAPIを使う場合、別途登録が必要になります。

次は・・twitterAPIを使っての投稿・・かなぁ。
\e

下音タヌキ PHP

docomoの絵文字  

2009/2/27 金曜日 10:38:32

つい最近までdocomoの絵文字は色つきで表示されないのかと思ってた。
わざわざ絵文字毎に色を指定して表示させていたのですが、
どうやらbodyタグのstyleにcolorで色指定してあると、その色が適応されてしまうようです。

ということで、bodyタグにcolorは指定しないようにしましょう。
色考慮しなくていいので、開発が楽になりました。
そんなdocomo。

下音タヌキ Tips, 携帯電話

WinVistaはダメな子じゃない!・・はず  

2009/1/30 金曜日 15:46:36

そろそろ仕事用のパソコンでWindowsVistaを使われる方々も増えてきているのではないこと思う今日この頃。
大抵、メーカーのPCってパーテーションが区切ってなくてCドライブしかない!という状況でお困りの方、Vistaにはパーテーションを区切る機能が付いてるので、それをご紹介。

パーティションサイズの変更は、コントロールパネルの「システムとメンテナンス」→「管理ツール」にある、「コンピュータの管理」から行うことができます。
左側の、「ディスクの管理」を選択して、分割したいドライブを右クリックして、「ドライブの圧縮」から容量を指定して分割することができます。
ただし、Vistaを使用してから結構時間がたってると、HDDのいろんな場所にデータが書き込まれていて、選択できる容量が少ない場合がありますので、事前にデフラグ等をして整理すると多少改善されます。
ベストは、使い始めに区切っちゃうのが一番なんですけどね。

メーカー物のPCでパーテーション切ってないものとか少なくないので、これからの時代を生き抜くに覚えておいて損はないかも・・?
Windows7でもたぶん搭載されてると思いますし。

と、本日でVista誕生から2年が経ったんですね。

下音タヌキ Tips