Fukuoka.php Vol1

仕事に若干の余裕ができたので平日にもかかわらず参加できた。職場から近かったのもでかい
これから始める勉強会ということで新鮮な気持ちに

概要

基本情報

項目 内容
*日程 5月23日(水) 19:00〜21:30
*会場 デジタルハリウッド大学 福岡校
*Facebookグループ http://www.facebook.com/groups/355557634510818/
*Ustream http://www.ustream.tv/channel/fukuoka-php
*Twitter https://twitter.com/#!/fukuokaphp
*ハッシュタグ #fukuokaphp

はじめに

はじめに立ち上げの経緯についての説明が@akase244 氏から。勢い良く始まったらしく内容はTogetterにまとめてあるとのこと
「Fukuoka.php」の立ち上げから開催直前までの流れ

PHPのテスト手法のおさらい

項目 内容
*登壇者 @akase244
*スライド http://prezi.com/-xxnituivznw/fukuokaphp-vol1/

TDD(Test Driven Development、テスト駆動開発)

・TDDはユニットテストの一つであり、統合テストとは別。
・自動化して、継続して行なっていくことが大事
PHP Unitが良さ気

PHP Unit
:

Simple Test
: 開発停止?

lime
:

phpt
: 本体にバンドルされている?

Doctest
:

BDD(Behavior Driven Development、振舞駆動開発)

Ruby系から派生したものが多い

PHP Spec
:

Behat
:

PHP Unit
: Seh. PHPカンファレンス関西 2012 PHPカンファレンス関西2012のLT資料"BDDで行こう"を公開しました

コーディングルール

PHPのコード規約を自動的にあわせたり、コードを整形したり

PHP Code Sniffer
: PHP CPD
: コピペコードの検出などの機能も

PHP MD
: 潜在的なバグの可能性をチェック。

PHP COding Standard Fixer
: おかしな箇所の指摘だけではなく、修正まで。まだまだ荒削り?

PHP Code Deautifuer
:

PHP Formatter
:

Pretty Printer
:

継続的なインテグレーション(CI)

Jenkins
:

PHP Under Controll
:

Tavis CI
:

感想

この辺はあまり詳しくなかったので、名前だけの紹介でもありがたかった。

[LT] PHPでできること

項目 内容
*登壇者 @rytich

福岡でのPHPのコミュニティの歴史?やその周辺界隈についての紹介
AIP CafeやらGuildCafe CostaやOreokaなどについても

SPL

項目 内容
*登壇者 @cakephper
*スライド http://www.slidesharh.net/ichikaway/spl-fukuokaphp1

Autoload

・外部のファイルをrequireやincludeで予め読んでおくのではなく、クラス利用時に自動的に読み込むことができる
・CakePHP2移行でも使われている
・予め __autoload関数を宣言しておく必要がある
・クラスと倶楽部を含むファイル名を合わせておくと良い

<?php

function __autoload($classname) {  
    $filename = "./". $classname .".php";  
    include_once($filename);  
}

http://www.php.net/manual/ja/languagh.oop5.autoload.php
http://www.php.net/manual/ja/function.autoload.php

Iterator

PHPIteratorを作成できる
・沢山のIteratorが準備されており、組み合わせて使用できる

http://php.net/manual/ja/spl.iterators.php

例えば、ディレクトリを再帰的に辿るRecursiveDirectoryIteratorなど
http://www.php.net/manual/ja/class.recursivedirectoryiterator.php

感想

SPL(Standard PHP Library)はあまり使ったことがなかった。PHP5から使えるらしい。
今度福岡でPHPまつり2012というイベントがあるらしい。ハッカソン

BaserCMSに見られるCakePHPノウハウ蓄積法

項目 内容
*登壇者 @ryuring
*スライド http://www.slidesharh.net/ryuring/basercmscakephp

問題意識

CakePHPを使って構築する場合、CakePHPコア、自社ライブラリ、サイト固有プログラムの分離が問題になる
⇒ Appに自社ライブラリとサイト固有プログラムを混ぜると自社ライブラリのメンテナンスが困難に

Baserでは

それぞれを以下のように分離することで、メンテナンスを容易にする
⇒ 自社ライブラリをアップデートする場合は /baserディレクトリを上書き、サイト固有プログラムは触らない

/cake
: CakePHPコア

/baser
: 自社ライブラリ

/app
: サイト固有プログラム

CakePHP1.2では、/appのbootstrapに/baserへのパスを追加することで可能
CakePHP1.3以降では、App:Buildを使うことで同様の仕組みが可能

感想

CakePHPを利用したコーポレイトサイト向けCMS、BaserCMSの仕組みについて
仕事ではCakePHPを使うことが多いので、この作り方は導入したい

[LT] PHPで画像処理のいろいろ

項目 内容
*登壇者 @yuki930
*スライド http://blog.v-colors.com/fukuoka-php-vol-1.html

PHPでは画像処理について色々なライブラリがある。
GD、ImageMagik、Imagine、Gmagick

比較的簡単に色々なことが実行できる
・画像のリサイズ
・画像に文字を合成し、カレンダーにする
・画像から色を抽出し、似た色合いの画像を検索する

感想

画像系はたまに触るので、なんとなくわかる。画像から色を抽出するのは何か面白そうな用途がありそう

[LT] PHP関数探訪

項目 内容
*登壇者 @debility
*スライド http://debility.hateblo.jp/entry/2012/05/24/190624

PHPの面白い関数紹介

get_define_function()
: PHPで使える関数の一覧を返す。初期状態で1000ちょっと

date_sun_info()
: 位置情報から日の出日の入り時間を返す

date_interval_create_from_date_string()
: 文字列からDate_intervalを生成する

str_rot13()
: 文字列をシーザー暗号に変換して返す

感想

PHPは無駄に関数が多い上によくわからない使い道のものが多い
PHPが他の言語と比べて素晴らしいのは、オンラインマニュアルだと正直思う
 ・意外と調べやすい
 ・マニュアル本体より、下にあるUser Contributed Notes のほうが数倍役に立つ+面白い