Post on 14-Jun-2015
description
NetBeansNetBeansNetBeansNetBeans、、、、FuelPHPFuelPHPFuelPHPFuelPHP とととと過過過過ごしたごしたごしたごした
この この この この 2 2 2 2 ヶヶヶヶ月月月月
suno (すの) / @suno882013.11.9(Sat) (株)ケイケンシステム 研修室
自己紹介
● 春原 宏保 (すのはら ひろやす)
● 長野市在住プログラマー
● Delphi / C# / C++ / PHP• Java? そんな難しい言語、
使えません!
● SIer 勤務で客先を点々と盥回しされる日々
すのはら整骨院 (長野市高田)
今日の発表は
自分語りみたいなものです。
ご了承ください m(_ _)m
第一部
NetBeans
ことのおこり
● @stealthinu さんが常駐先の前時代的な開発環境を改善しようと孤軍奮闘する話
2013/7、NSEG 勉強会 #41 (白馬合宿)http://www.slideshare.net/stealthinu/web-24531872
IDE を導入しようとするが……
● Eclipse PDT (PHP Development Tools) をインストールしたものの──
PHP と PSR と Eclipse ですったもんだ~Eclipse 嫌いの Eclipse 奮闘記~2013/8、NSEG 勉強会 #42
● 最新版(4.3)ではコード補完が効かない
● コードフォーマットが PSR-2非準拠
● 4.2 ではフォーマット規則をカスタマイズできない
NetBeans
● Sun (現 Oracle)が中心となって開発されている IDE
● Eclipse とは違い、最初から PHP 用 IDE が提供されている
● 2013/8 時点で 7.3.1
● 2013/10 に 7.4
http://ja.netbeans.org/
入れてみた
● インストールは簡単
● インストーラーを起動して指示に従うだけ
● プラグインを探してきて入れたり、相性がどうのこうの悩んだりする必要ナシ
● 動作が軽い!
● Java で書かれていると知り、二度ビックリ
コードフォーマットを PSR-2 準拠に
● ツール→オプション→エディタ→フォーマット
● 言語を「PHP」、カテゴリを「中括弧」
● クラス宣言とメソッド宣言を「改行」に変更
【参考】PSR-2 http://www.infiniteloop.co.jp/docs/psr/psr-2-coding-style-guide.html
true/false/null を小文字で補完
● デフォルトでは true、false、null を大文字で補完する
● PSR-2 では「小文字にすべし」
true/false/null を小文字で補完
● <インストールフォルダー>\php\phpstubs\phpruntime\Core.php を書き換えて再起動
/** * All errors and warnings, as supported, except of level * <b>E_STRICT</b> prior to PHP 5.4.0. * @link http://php.net/manual/en/errorfunc.constants.php */define ('E_ALL', 32767);define ('DEBUG_BACKTRACE_PROVIDE_OBJECT', 1);define ('DEBUG_BACKTRACE_IGNORE_ARGS', 2);define ('TRUETRUETRUETRUE', true);define ('FALSEFALSEFALSEFALSE', false);define ('NULLNULLNULLNULL', null);
小文字に
エディターは
管理者権限で
起動してね!
第二部
FuelPHP
ウェブアプリケーションフレームワークと私
● フレームワークが大嫌い
● 2004 年、転職直後にひどいオレオレフレームワークで作業させられたトラウマ
● 2013 年 1 月、常駐先で新規開発案件にSymfony 1.0 (2010 年 1 月にサポート終了)を使ったデスマーチに投入される
• ファイルサーバー上のソースを直接編集• オレオレ O/R マッパーをテーブルごとに手作業で
作って使う
【参考】SIer と受託開発、エンジニアの未来 (前編) http://d.hatena.ne.jp/suno88/20081001/1222862239
苦悩の日々
● ひとつくらいフレームワークを使えないと
● フレームワークは流行り廃りが激しすぎ
手が出せない!
http://local.joelonsoftware.com/wiki/(Forum)_
私はなぜフレームワークが嫌いか
年貢の納め時
● 2 人で進めるプロジェクト
● さすがに suno 素の PHP で書くわけには……
● どうせ学ぶなら、これから伸びそうなものを
● PHP 5.3 以降専用? 過去のしがらみがなくてよさそう!
● じゃあ にするかな
FuelPHP とは
● CodeIgniter から派生したフレームワーク
● コアを書いている 5 名のプログラマーが全員 CodeIgniter のコアを書いていた(いる)
● PHP 5.3 以降専用
● 過去のしがらみがない
● 先月 1.7 が出た
● 1 系列最終版
http://fuelphp.com/
FuelPHP 情報源
● 公式サイト http://fuelphp.com/
● 日本語ドキュメント http://fuelphp.jp/
● FuelPHP まとめ Wikihttp://wiki.fuelphp1st.com/wiki/
開催前の時点で
すでに載ってる
(^^;
新しいフレームワークなので
● ウェブの情報がまだまだ少ない
● 入門書を購入
『はじめてのフレームワークと しての FuelPHP』 http://tatsu-zine.com/books/ fuelphp1st
『はじめての~FuelPHP』★★★★★
● 基礎の基礎から丁寧に書かれている
● サポートページが現在も更新されている
● https://github.com/kenjis/fuelphp1st
● ツイッターの公式アカウントによるサポートも
● その節は助かりました。感謝しています。
NetBeans にプラグインを導入
● ツール→プラグイン→使用可能なプラグイン
● PHP FuelPHP Framework をインストール
こちらを参考に
@junichi_11 さん(プラグイン作者)のスライド
http://www.slideshare.net/junichiy11/netbeans-plugin-for-fuelphp
新規プロジェクトの作成
● 新規プロジェクト作成ウィザードの最後のページでフレームワークを選択する
FuelPHP のプロジェクトにはFuelPHP のアイコンが表示される
まずは config.php を修正/** * Localization & internationalization settings */ 'language' => 'jajajaja', // Default language 'language_fallback' => 'en', // Fallback language when file isn't available for default language 'locale' => 'ja_JPja_JPja_JPja_JP', // PHP set_locale() setting, null to not set
// (snip)
/** * DateTime settings * * server_gmt_offset in seconds the server offset from gmt timestamp when time() is used * default_timezone optional, if you want to change the server's default timezone */// 'server_gmt_offset' => 0, 'default_timezone' => 'Asia/TokyoAsia/TokyoAsia/TokyoAsia/Tokyo',
FuelPHP とロケール
fuel├ app│ └ lang│ └ ja│ └ validation.php└ core └ lang └ en └ validation.php
コピー
language = 'ja' の指定で読み込まれる
language_fallback = 'en' の指定で、ja/validation.php にないフィールドは
こちらから読み込まれる
FuelPHP のディレクトリ構成
├ fuel/│ ├ app/ アプリケーション│ │ ├ classes/ クラス│ │ │ ├ controller/ コントローラー│ │ │ ├ model/ モデル│ │ │ └ view/ ビューモデル│ │ ├ config/ 設定ファイル│ │ ├ lang/ 言語ファイル│ │ └ views/ ビュー│ └ core/ コア (通常は書き換えない)└ public/ ├ assets/ │ ├ css/ スタイルシート │ ├ img/ 画像 │ └ js/ JavaScript └ index.php フロントコントローラー
fuel/public/ にシンボリックリンクを
● fuel/public/ が公開領域にあればよい→ドキュメントルートから fuel/public に シンボリックリンクを張る
コントローラーの作成
● fuel/app/classes/controller/test.php
<?php
class Controller_Test extends Controller{ public function action_index($name = 'John Doe') { $data = []; $data['title'] = 'NSEG #45: FuelPHP デモ'; $data['name'] = $name; return View::forge('test', $data); }}
ビューの作成
● fuel/app/views/test.php
<!DOCTYPE HTML><html lang="ja">
<head> <meta charset="utf-8"> <title><?= $title ?></title> </head>
<body> <h1><?= $title ?></h1> <p>こんにちは、<?= $name ?>さん。ようこそ NSEG へ。</p> </body></html>
ブラウザーでの実行結果
● http://localhost/nseg45/test/index/foo
FuelPHP の URL
● http://localhost/nseg45/test/index/foo
クラス名
アクション名(action_index)
引数 1
この URL を叩くと……?
● http://localhost/nseg45/test/index/<script>alert('Hi!');</script>
FuelPHP が自動的に無害化
FuelPHP その他の機能
● 時間がないのでまた次回
スライド作成の
かった
FuelPHP 翻訳ウィーク (終了)
● FuelPHP 1.7 リリースに合わせたオンラインイベント
● FuelPHP の日本語ドキュメントをみんなでいっせいに翻訳しよう!
● 翻訳自体は今でもウェルカム
http://atnd.org/events/43946
参加してよかった翻訳ウィーク
● ツイッターでいろいろな方に助けていただいたので、恩返しの意味で参加
● 普段読まない部分までも詳しく読むので、FuelPHP の理解が進んだ
● 英語ドキュメントだと本気で読むので :-)
● GitHub 初体験も一緒に済ませられた
進捗報告
● FuelPHP を使って、週報自動配信システムのデータ登録部を作成中
2010/4 NSEG #2 「山椒は小粒でぴりりと辛い ~小さなプログラム万歳!~」http://www.slideshare.net/suno88/suno88-2
今後の予定
● 社内勉強会用の公式サイトを FuelPHP で構築し、毎週コンテンツを追加する
2013/9 NSEG #43 「HTML と CSS の社内勉強会を主催した話」http://www.slideshare.net/suno88/html-css-26425083
そんなことよりちょいと聞いてくれよ
● 発表とあんま関係ないけどさ
● 先月、小 3 の娘の音楽会行ったんです。音楽会。
※去年はデスマーチの ため、午前半休すら 取得できず :-(
で、よく見たらなんか横断幕(ry
● 1 学年違うだけでめちゃくちゃ違う
● 特に 6 年生の合唱は圧巻
● 1 年間での成長を感じる
● さて、自分はこの 1 年間でどれだけ成長した?
● これからもたくさん勉強しなくちゃ。現状維持は退化。
『PHP 逆引きレシピ 第 2 版』買いました
● 2013/10/21 発売
● 本物のレシピ本より分厚くてワロタwww