読者です 読者をやめる 読者になる 読者になる

Fukuoka.php Vol.3

項目 内容
*日程 9月28日(土) 19:00 to 21:00
*会場 paperboy&co. 福岡支社(福岡市中央区天神2-7-21 天神プライム8階)
*参加者のまとめ http://togetter.com/li/382026
*Facebookグループ https://www.facebook.com/groups/355557634510818/

@akase244氏のFacebookでのまとめはこちら

php.netの歩き方 @akase244 氏

プレゼン資料

php.netのサイトは色々な情報がまとまっている
FAQ
documentation
各種サブページ
 ・talk.php.net PHPに関するプレゼンテーションなど
 ・php.net/cal.php phpに関するイベントページ

php.net/deleteのようなジョークページも

delete — unlink() か unset() を参照すること

void delete ( void )
ダミーページです。 こんな関数は実在しません。あなたが探しているのは、きっと unlink() または unset() でしょう。

php.netはよくみるといろんな情報が載っているサイトです

php @cakephper 氏

プレゼン資料

はじめに

今日の登壇者でもある@yando氏や@cakephper氏が書かれたCakePHP2 実践入門が発売。導入からセキュリティ、チートシートまで。出版に使った環境なども公開中。いまどきの技術本執筆環境 - 「CakePHP2実践入門」

PHP Matsuri

11月3日~11月4日に、福岡Rubyセンターで開催予定

公式ページは、GitHub pageで作成されている
・無料でホスティング
・もちろん、バージョン管理も
・テンプレート機能あり
・ちょっとした簡易ブログ的な機能もあり
ドメインはCNAMEで割り当て
・ただしブラウザキャッシュが1日と長い

ローカルではジキルで表示を確認し、okならばpushする

copy on write

php の言語的な動作。
変数を変数にコピーすると実際に新しい変数に変更を加えるまでは、元の変数に対する参照が格納されるだけ。新しい変数に変更が加わった時に始めて変数に値がコピーされる。要は、容量の大きな変数をコピーして使いまわしても、変更さえ加えなければそんなに容量を食うことはなという話。

$a = 'hogehoge';  
$b = $a;  // この時点では$aに対する参照が格納されている  
$b = $b . 'foobar'; // この時点で始めて値がコピーされる

最近面白かった記事 on 7月

PHP5.5はこうなる nikic氏。
: 新しいphp5.5の解説記事。ジェネレータなども
: 原文

PHPは現実的 nikic氏。
: PHPは問題を解決したい人に向いている言語。一先ず問題を解決してから次の段階にステップアップができる。他の言語では、はじめに言語を覚えてから、問題を解決する。
: 原文

PHPはずっと素敵 Fabien
: PHPは何かを成し遂げるための道具になっている
: 巷ではPHPを古いイメージを引きずっている。今のphpには、名前空間クロージャもtraitも、エコシステムもある。
: 原文
: 日本語訳

PHP The Right Way
: モダンPHPを書くためのベストプラクティス集
: 原文

stream wrapper

PHPでは、ストリームラッパーの機能を使うことで、様々なデータソースに対して透過的にIOを行うことができる。例えば、httpやftp、圧縮ファイルを操作するzlibやメモリを扱うphp://memoryなど。そして、このストリームラッパーは自作することもできる。stream_wrapper_register。必要なのはいくつかのメソッドを実装するだけで、意外と簡単にできる。

新標準規約PSRで書くモダンPHPコード @yando 氏

プレゼン資料

PSRはProposing a Standards Recommendationの略。

はじめにPHP Matsuriについて

PHP Matsuriでは、子供向けのセッションであるCoder dojoを行う予定
Coder dojoは子供向けの勉強会。集中力が続かないので1時間ほど、教える役の大人と子供がマンツーマンで行う。

内容は簡単なhtmlやjavascriptcssのセミナーやscratchと呼ばれる教育用の環境などを使って行う。

コーディング規約について

プログラム開発を行う上で、コーディング規約は重要。読みづらいコード、タブとスペース問題、おかしなネーミングなど。

phpには、古くはPEARの規約があったけど、実際面倒臭すぎる上、2008年に失効してしまっている。

他にも様々なフレームワーク毎にコーディング規約はあるけど、実際によく分からない。そこで出てきたのがphp figが策定したpsrと呼ばれるコーディング規約。これには様々なPHPフレームワークの開発者が参加している。

PSR-0

phpのオートロード機能に対応するための命名規則
要するに「ファイル名と名前空間、ークラス名を一対一で対応させる」ためのもの。

seh. PSR-0

PSR-1

異なるライブラリやフレームワーク間でも共存できるようにするためのルール。予めpar-0に対応しておくことが前提。

例えば、
・ショートタグは使わない(<?phpと<?=のみ使う)
文字コードはBOM無しのUTF8
・副作用を避ける(呼び出した瞬間おかしなことにならないように)
 ・classやfunctionを宣言するファイルで処理をしない
 ・処理をこなうファイルでは宣言しない
・クラス名はStudlyCaps、メソッド名はcamelCase
名前空間を使うこと

seh. PSR-1

PSR-2

細かい書き方の統一のためのルール。予めpsr-1に準拠していることが前提。

例えば、
・改行はLF
・ファイルの末尾には空行をいれる
phpのみのファイルの場合は、phpの閉じタグを省略する?>
・インデントはスペース4つ。タブは使わない
・空行の入れ方や大文字小文字の扱いなど
・開き{は改行する

あえて言及していない項目も多い
・コメントの書き方やドキュメントブロック
・プレフィックスやサフィックス
・などなど

seh. PSR-2

psrの決め方

はじめに著名なプロジェクトを統計的に調査して基本方針を決めた。どちらにするかは統計的な背景を元に説明できるように。その後、参加者間での議論となるが、既存のフレームワークなどの状況も様々であり、詳細なコーディング規約というより、一通りの内容が含まれたコーディング規約となっている。