44
NetBeans NetBeans NetBeans NetBeansFuelPHP FuelPHP FuelPHP FuelPHP と過 過ごした ごした ごした ごした この この この この 2 2 2 2 ヶ ヶ月 suno (すの) / @suno88 2013.11.9(Sat) (株)ケイケンシステム 研修室

NetBeans、FuelPHP と過ごしたこの 2 ヶ月

  • Upload
    suno88

  • View
    3.629

  • Download
    0

Embed Size (px)

DESCRIPTION

NSEG 第 45 回勉強会での発表「NetBeans、FuelPHP と過ごしたこの 2 ヶ月」のスライド。

Citation preview

Page 1: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

NetBeansNetBeansNetBeansNetBeans、、、、FuelPHPFuelPHPFuelPHPFuelPHP とととと過過過過ごしたごしたごしたごした

この この この この 2 2 2 2 ヶヶヶヶ月月月月

suno (すの) / @suno882013.11.9(Sat) (株)ケイケンシステム 研修室

Page 2: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

自己紹介

● 春原 宏保 (すのはら ひろやす)

● 長野市在住プログラマー

● Delphi / C# / C++ / PHP• Java? そんな難しい言語、

使えません!

● SIer 勤務で客先を点々と盥回しされる日々

すのはら整骨院 (長野市高田)

Page 3: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

今日の発表は

自分語りみたいなものです。

ご了承ください m(_ _)m

Page 4: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

第一部

NetBeans

Page 5: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

ことのおこり

● @stealthinu さんが常駐先の前時代的な開発環境を改善しようと孤軍奮闘する話

2013/7、NSEG 勉強会 #41 (白馬合宿)http://www.slideshare.net/stealthinu/web-24531872

Page 6: NetBeans、FuelPHP と過ごしたこの 2 ヶ月
Page 7: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

IDE を導入しようとするが……

● Eclipse PDT (PHP Development Tools) をインストールしたものの──

PHP と PSR と Eclipse ですったもんだ~Eclipse 嫌いの Eclipse 奮闘記~2013/8、NSEG 勉強会 #42

● 最新版(4.3)ではコード補完が効かない

● コードフォーマットが PSR-2非準拠

● 4.2 ではフォーマット規則をカスタマイズできない

Page 8: NetBeans、FuelPHP と過ごしたこの 2 ヶ月
Page 9: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

NetBeans

● Sun (現 Oracle)が中心となって開発されている IDE

● Eclipse とは違い、最初から PHP 用 IDE が提供されている

● 2013/8 時点で 7.3.1

● 2013/10 に 7.4

http://ja.netbeans.org/

Page 10: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

入れてみた

● インストールは簡単

● インストーラーを起動して指示に従うだけ

● プラグインを探してきて入れたり、相性がどうのこうの悩んだりする必要ナシ

● 動作が軽い!

● Java で書かれていると知り、二度ビックリ

Page 11: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

コードフォーマットを PSR-2 準拠に

● ツール→オプション→エディタ→フォーマット

● 言語を「PHP」、カテゴリを「中括弧」

● クラス宣言とメソッド宣言を「改行」に変更

【参考】PSR-2 http://www.infiniteloop.co.jp/docs/psr/psr-2-coding-style-guide.html

Page 12: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

true/false/null を小文字で補完

● デフォルトでは true、false、null を大文字で補完する

● PSR-2 では「小文字にすべし」

Page 13: NetBeans、FuelPHP と過ごしたこの 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);

小文字に

エディターは

管理者権限で

起動してね!

Page 14: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

第二部

FuelPHP

Page 15: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

ウェブアプリケーションフレームワークと私

● フレームワークが大嫌い

● 2004 年、転職直後にひどいオレオレフレームワークで作業させられたトラウマ

● 2013 年 1 月、常駐先で新規開発案件にSymfony 1.0 (2010 年 1 月にサポート終了)を使ったデスマーチに投入される

• ファイルサーバー上のソースを直接編集• オレオレ O/R マッパーをテーブルごとに手作業で

作って使う

【参考】SIer と受託開発、エンジニアの未来 (前編)    http://d.hatena.ne.jp/suno88/20081001/1222862239

Page 16: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

苦悩の日々

● ひとつくらいフレームワークを使えないと

● フレームワークは流行り廃りが激しすぎ

手が出せない!

Page 17: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

http://local.joelonsoftware.com/wiki/(Forum)_

私はなぜフレームワークが嫌いか

Page 18: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

年貢の納め時

● 2 人で進めるプロジェクト

● さすがに suno 素の PHP で書くわけには……

● どうせ学ぶなら、これから伸びそうなものを

● PHP 5.3 以降専用? 過去のしがらみがなくてよさそう!

● じゃあ にするかな

Page 19: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

FuelPHP とは

● CodeIgniter から派生したフレームワーク

● コアを書いている 5 名のプログラマーが全員 CodeIgniter のコアを書いていた(いる)

● PHP 5.3 以降専用

● 過去のしがらみがない

● 先月 1.7 が出た

● 1 系列最終版

http://fuelphp.com/

Page 20: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

FuelPHP 情報源

● 公式サイト http://fuelphp.com/

● 日本語ドキュメント http://fuelphp.jp/

● FuelPHP まとめ Wikihttp://wiki.fuelphp1st.com/wiki/

開催前の時点で

すでに載ってる

(^^;

Page 21: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

新しいフレームワークなので

● ウェブの情報がまだまだ少ない

● 入門書を購入

『はじめてのフレームワークと しての FuelPHP』 http://tatsu-zine.com/books/ fuelphp1st

Page 22: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

『はじめての~FuelPHP』★★★★★

● 基礎の基礎から丁寧に書かれている

● サポートページが現在も更新されている

● https://github.com/kenjis/fuelphp1st

● ツイッターの公式アカウントによるサポートも

● その節は助かりました。感謝しています。

Page 23: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

NetBeans にプラグインを導入

● ツール→プラグイン→使用可能なプラグイン

● PHP FuelPHP Framework をインストール

Page 24: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

こちらを参考に

@junichi_11 さん(プラグイン作者)のスライド

http://www.slideshare.net/junichiy11/netbeans-plugin-for-fuelphp

Page 25: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

新規プロジェクトの作成

● 新規プロジェクト作成ウィザードの最後のページでフレームワークを選択する

Page 26: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

FuelPHP のプロジェクトにはFuelPHP のアイコンが表示される

Page 27: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

まずは 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',

Page 28: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

FuelPHP とロケール

fuel├ app│ └ lang│ └ ja│ └ validation.php└ core └ lang └ en └ validation.php

コピー

language = 'ja' の指定で読み込まれる

language_fallback = 'en' の指定で、ja/validation.php にないフィールドは

こちらから読み込まれる

Page 29: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

FuelPHP のディレクトリ構成

├ fuel/│ ├ app/ アプリケーション│ │ ├ classes/ クラス│ │ │ ├ controller/ コントローラー│ │ │ ├ model/ モデル│ │ │ └ view/ ビューモデル│ │ ├ config/ 設定ファイル│ │ ├ lang/ 言語ファイル│ │ └ views/ ビュー│ └ core/ コア (通常は書き換えない)└ public/ ├ assets/ │ ├ css/ スタイルシート │ ├ img/ 画像 │ └ js/ JavaScript └ index.php フロントコントローラー

Page 30: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

fuel/public/ にシンボリックリンクを

● fuel/public/ が公開領域にあればよい→ドキュメントルートから fuel/public に シンボリックリンクを張る

Page 31: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

コントローラーの作成

● 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); }}

Page 32: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

ビューの作成

● 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>

Page 33: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

ブラウザーでの実行結果

● http://localhost/nseg45/test/index/foo

Page 34: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

FuelPHP の URL

● http://localhost/nseg45/test/index/foo

クラス名

アクション名(action_index)

引数 1

Page 35: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

この URL を叩くと……?

● http://localhost/nseg45/test/index/<script>alert('Hi!');</script>

FuelPHP が自動的に無害化

Page 36: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

FuelPHP その他の機能

● 時間がないのでまた次回

スライド作成の

かった

Page 37: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

FuelPHP 翻訳ウィーク (終了)

● FuelPHP 1.7 リリースに合わせたオンラインイベント

● FuelPHP の日本語ドキュメントをみんなでいっせいに翻訳しよう!

● 翻訳自体は今でもウェルカム

http://atnd.org/events/43946

Page 38: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

参加してよかった翻訳ウィーク

● ツイッターでいろいろな方に助けていただいたので、恩返しの意味で参加

● 普段読まない部分までも詳しく読むので、FuelPHP の理解が進んだ

● 英語ドキュメントだと本気で読むので :-)

● GitHub 初体験も一緒に済ませられた

Page 39: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

進捗報告

● FuelPHP を使って、週報自動配信システムのデータ登録部を作成中

2010/4 NSEG #2 「山椒は小粒でぴりりと辛い ~小さなプログラム万歳!~」http://www.slideshare.net/suno88/suno88-2

Page 40: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

今後の予定

● 社内勉強会用の公式サイトを FuelPHP で構築し、毎週コンテンツを追加する

2013/9 NSEG #43 「HTML と CSS の社内勉強会を主催した話」http://www.slideshare.net/suno88/html-css-26425083

Page 41: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

そんなことよりちょいと聞いてくれよ

● 発表とあんま関係ないけどさ

● 先月、小 3 の娘の音楽会行ったんです。音楽会。

※去年はデスマーチの ため、午前半休すら 取得できず :-(

Page 42: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

で、よく見たらなんか横断幕(ry

● 1 学年違うだけでめちゃくちゃ違う

● 特に 6 年生の合唱は圧巻

● 1 年間での成長を感じる

● さて、自分はこの 1 年間でどれだけ成長した?

● これからもたくさん勉強しなくちゃ。現状維持は退化。

Page 43: NetBeans、FuelPHP と過ごしたこの 2 ヶ月

『PHP 逆引きレシピ 第 2 版』買いました

● 2013/10/21 発売

● 本物のレシピ本より分厚くてワロタwww

Page 44: NetBeans、FuelPHP と過ごしたこの 2 ヶ月