Movatterモバイル変換


[0]ホーム

URL:


SlideShare a Scribd company logo

最近、僕がハマったFuelPHPの紹介

62 likes62,732 views
Naoto Mawatari
Naoto Mawatari

2012年7月20日に行われたFukuoka.php Vol.2での資料です。スライドの内容に間違い等あれば、ご指摘ください。質問等は、お気軽に@mawatarinまで。Fukuoka.php Vol.2 リポートhttp://mawatari.jp/archives/fukuoka-php-02-report

1 of 115
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Most read
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
最近、僕がハマった FuelPHPの紹介              2012/7/20        Fukuoka.php Vol.2            @mawatarin
自己紹介•   @mawatarin•   ウェブプログラマ•   Perlを4年くらい•   そのあとPHPを4年くらい•   ただ最近は専らマネジメントより
セッションを始める前に•   まず、言い訳から始めさせてください!
セッションを始める前に•   まず、言い訳から始めさせてください!•   1週間前に子どもが生まれました!
セッションを始める前に•   まず、言い訳から始めさせてください!•   1週間前に子どもが生まれました!•   そのため、スライドを作る時間がほとんどありません    でしたっっっ•   ネタとか仕込む間もなかったので、つまらなかったら    ごめんなさい
セッションを始める前に•   事前のヒアリングでFuelPHPに関しては名前は聞いた    ことあるけど、使ってことがないという人が多かった    です•   とりあえず、ざっくりFuelPHPの概要を伝えるスライド    を作りました
今日のお話
今日のお話1. FuelPHPに興味を持ったきっかけ2. FuelPHPとは3. FuelPHPのインストールとフォルダ構成4. FuelPHPの使い方(MVCの基本)5. セキュリティについて6. その他ざっくりと(デバッグ、プロファイラ、コア  クラス一覧)
1. FuelPHPに興味を持ったきっかけ
1. FuelPHPに興味を持ったきっかけ •   Web API 制作の案件が入った •   IDに応じたデータを返すだけの簡単なもの
1. FuelPHPに興味を持ったきっかけ •   Web API 制作の案件が入った •   IDに応じたデータを返すだけの簡単なもの •   たまたま空いてるPGがいなかった
1. FuelPHPに興味を持ったきっかけ •   Web API 制作の案件が入った •   IDに応じたデータを返すだけの簡単なもの •   たまたま空いてるPGがいなかった •   自分で作るか
1. FuelPHPに興味を持ったきっかけ •   なんかフレームワークを使おう
1. FuelPHPに興味を持ったきっかけ •   なんかフレームワークを使おう •   最近よく聞くようになったフレームワーク「FuelPHP」 •   RESTコントローラが簡単っぽい •   試しに調べてみよう
1. FuelPHPに興味を持ったきっかけ例えば、このようなテーブルがあったとして CREATE TABLE user (     id int(11) auto_increment    ,name varchar(50)    ,email varchar(255) );
1. FuelPHPに興味を持ったきっかけこんな風にコントローラを実装 class Controller_User extends Controller_Rest  public function get_list()  {   $user = Model_User::forge();   $data = $user->find(Input::get('id'));   $this->response($data);  } } // 実際はもっと作り込みますが……
1. FuelPHPに興味を持ったきっかけこんな風にコントローラを実装※中身は後ほど解説します class Controller_User extends Controller_Rest  public function get_list()  {   $user = Model_User::forge();   $data = $user->find(Input::get('id'));   $this->response($data);  } } // 実際はもっと作り込みますが……
1. FuelPHPに興味を持ったきっかけ以下のURLにアクセスすると…… http://localhost/user/list.xml?id=123
1. FuelPHPに興味を持ったきっかけ以下のURLにアクセスすると……XMLが返ってくる! http://localhost/user/list.xml?id=123 <xml>   <id>123</id>   <name>foo</name>   <email>foo@example.jp</email> </xml>
1. FuelPHPに興味を持ったきっかけ拡張子をjsonに変更すると…… http://localhost/user/list.json?id=123
1. FuelPHPに興味を持ったきっかけ拡張子をjsonに変更すると……JSON形式で返ってくる! http://localhost/user/list.json?id=123 {     "id":"123",     "name":"foo",     "email":"foo@example.jp" }
1. FuelPHPに興味を持ったきっかけ拡張子をphpに変更すると……PHP arrayで返ってくる! http://localhost/user/list.php?id=123 array (    'id' => '123',    'name' => 'foo',    'email' => 'foo@example.jp', )
1. FuelPHPに興味を持ったきっかけ何これステキ!
1. RESTコントローラの使い方
1. RESTコントローラの使い方 •   Controller_Rest クラスを継承します •   実装するメソッドには、HTTPメソッドのプレフィック     スをつけます •   URLのメソッド名に続けて、出力フォーマットの拡張子     を付けます
1. RESTコントローラの解説Controller_Rest クラスを継承 class Controller_User extends Controller_Rest  public function get_list()  {   $user = Model_User::forge();   $data = $user->find(Input::get('id'));   $this->response($data);  } }
1. RESTコントローラの解説メソッドのプレフィックスでHTTPメソッドを指定GET, POST, PUT, DELETE が指定できます class Controller_User extends Controller_Rest  public function get_list()  {   $user = Model_User::forge();   $data = $user->find(Input::get('id'));   $this->response($data);  } }
1. RESTコントローラの解説メソッド名に続けて出力フォーマットの拡張子を付けます拡張子に応じて自動的にフォーマットしてくれます class Controller_User extends Controller_Rest  public function get_list()  {   $user = Model_User::forge();   $data = $user->find(Input::get('id'));   $this->response($data);  } } http://localhost/user/list.xml?id=123
1. RESTコントローラの解説以下のフォーマットに対応     拡張子                フォーマット    xml          XML    json         JSON    jsonp        JSONP    csv          CSVファイル    php          PHP array    serialized   シリアライズされたデータ
1. RESTコントローラの解説FuelPHPとの出会いはそんな感じ
2. FuelPHPとは
2. FuelPHPとは 公式サイトより
2. FuelPHPとは つたない和訳ですが      FuelPHPは他のフレームワークの      良いところを参考にし、コミュ      ニティ駆動で一から開発された      PHP5.3を対象としたシンプルで      柔軟なウェブアプリケーション      フレームワークです。
2. FuelPHPとは •   フューエル・ピー・エイチ・ピーと読みます
2. FuelPHPとは •   フューエル・ピー・エイチ・ピーと読みます •   2011年7月にversion 1.0が出た新しいフレームワーク •   その後、2011年12月に1.1、2012年6月に1.2リリース
2. FuelPHPとは •   フューエル・ピー・エイチ・ピーと読みます •   2011年7月にversion 1.0が出た新しいフレームワーク •   その後、2011年12月に1.1、2012年6月に1.2リリース •   FuelPHPのコア開発者5名すべてはCodeIgniterの開発に     関わっている(いた) •   他のフレームワークの良い所取りをしたCodeIgniter     ライクなフレームワーク
2. FuelPHPとは •   規約より設定 •   PHP5.3以上必須 •   オートローダー •   oilコマンド     •  スキャフォールディング     •  DBマイグレーション     •   テスト、タスク •   モジュール、パッケージ、HMVC、 ViewModel •   MITライセンス
3. FuelPHPのインストール
3. FuelPHPのインストール $ curl get.fuelphp.com/oil | sh $ oil create /path/to/install_dir/project_name
3. FuelPHPのインストール2行、それだけで。 $ curl get.fuelphp.com/oil | sh $ oil create /path/to/install_dir/project_name
3. FuelPHPのインストールインストール完了! ※要Git
3. FuelPHPのインストールTwitter Bootstrapが取り入れられてるってのもイイ感じ
3. FuelPHPのインストールざっくり解説 $ curl get.fuelphp.com/oil | sh $ oil create /path/to/install_dir/project_name
3. FuelPHPのインストールoilコマンドのインストール $ curl get.fuelphp.com/oil | sh $ oil create /path/to/install_dir/project_name
3. FuelPHPのインストールFuelPHPのファイル群を生成 $ curl get.fuelphp.com/oil | sh $ oil create /path/to/install_dir/project_name
3. FuelPHPのインストール中身はともにGitHubからのgit clone(ざっくり解説) $ curl get.fuelphp.com/oil | sh $ oil create /path/to/install_dir/project_name
3. FuelPHPのフォルダ構成
3. FuelPHPのフォルダ構成          アプリケーションファイルを置く場所          =僕らが書く場所
3. FuelPHPのフォルダ構成          FuelPHPのコアが置かれた場所          基本的に触ることはないです
3. FuelPHPのフォルダ構成          パッケージを置く場所
3. FuelPHPのフォルダ構成          パッケージを置く場所          標準で5つのパッケージが          格納されています          自作のパッケージもここに格納します
3. FuelPHPのフォルダ構成          スタティックファイルを置く場所
3. FuelPHPのフォルダ構成          アプリケーションファイルの中を          見ていきましょう
3. FuelPHPのフォルダ構成          Model
3. FuelPHPのフォルダ構成          View
3. FuelPHPのフォルダ構成          Controller
3. FuelPHPのフォルダ構成          ViewModel          Viewファイルとは違います
3. FuelPHPのフォルダ構成          ViewModel          Viewファイルとは違います          ビューモデルはビューの生成に必要なロジックを含むク          ラスです。 コントローラがユーザ入力を処理し、必要な          アクションを処理すると、 ビューモデルにビューに必要          なデータを取得するように処理を引き継ぎます。          http://press.nekoget.com/fuelphp_doc_1.2/general/          viewmodels.html
3. FuelPHPのフォルダ構成          Config          必要に応じて設定ファイルをオーバーライドします          例えば、環境に応じてDBを変えたり、プロファイラを有          効する等
3. FuelPHPのフォルダ構成          Config          必要に応じて設定ファイルをオーバーライドします          例えば、環境に応じてDBを変えたり、プロファイラを有          効する等          core/config          app/config          app/config/production or app/config/development          の順でオーバーライドされます          productionまたはdevelopmentは、環境に応じて読み込まれ          ます
3. FuelPHPのフォルダ構成          Config          必要に応じて設定ファイルをオーバーライドします          例えば、環境に応じてDBを変えたり、プロファイラを有          効する等          core/config          app/config          app/config/production or app/config/development          の順でオーバーライドされます          productionまたはdevelopmentは、環境に応じて読み込まれ          ます          初期状態でフォルダは存在しませんが、stage, test という          環境も定義されています
4. FuelPHPの使い方 - Controller
4. FuelPHPの使い方 - Controller •   APPPATH/classes/controller以下に配置 •   ファイル名はコントローラー名で小文字にします •   Controllerクラスを継承します •   クラス名にはController_プレフィックスをつけます •   クラス名の単語の先頭は大文字にします •   クラス名の単語の区切りにアンダースコアを使うと     サブフォルダを意味してしまうので注意が必要です
4. Controllerでのお約束 ファイル名はすべて小文字APPPATH/classes/controller/welcome.phpclass Controller_Welcome extends Controller{ public function action_index() {  return Response::forge(View::forge('welcome/index')); }}
4. Controllerでのお約束 Controllerクラスを継承しますAPPPATH/classes/controller/welcome.phpclass Controller_Welcome extends Controller{ public function action_index() {  return Response::forge(View::forge('welcome/index')); }}
4. Controllerでのお約束 Controller_プレフィックスをつけますAPPPATH/classes/controller/welcome.phpclass Controller_Welcome extends Controller{ public function action_index() {  return Response::forge(View::forge('welcome/index')); }}
4. Controllerでのお約束 クラス名の単語の先頭は大文字にしますAPPPATH/classes/controller/welcome.phpclass Controller_Welcome extends Controller{ public function action_index() {  return Response::forge(View::forge('welcome/index')); }}
4. Controllerでのお約束 クラス名の単語の区切りにアンダースコアを使うとサブ フォルダを意味しますAPPPATH/classes/controller/welcome/member.phpclass Controller_Welcome_Member extends Controller{ public function action_index() {  return Response::forge(View::forge('welcome/index')); }}
4. ControllerとURLの関係 第一セグメントがクラス名http://localhost/welcome/indexclass Controller_Welcome extends Controller{ public function action_index() {  return Response::forge(View::forge('welcome/index')); }}
4. ControllerとURLの関係 第二セグメントがメソッド名http://localhost/welcome/indexclass Controller_Welcome extends Controller{ public function action_index() {  return Response::forge(View::forge('welcome/index')); }}
4. ControllerとURLの関係 ブラウザから実行されるメソッド(アクションメソッ ド)には、action_プレフィックスをつけますhttp://localhost/welcome/indexclass Controller_Welcome extends Controller{ public function action_index() {  return Response::forge(View::forge('welcome/index')); }}
4. ControllerとURLの関係 第三セグメント以降はパラメータ 受け取りの際はデフォルト値を設定しておいた方が無難http://localhost/welcome/index/123class Controller_Welcome extends Controller{ public function action_index($page = null) {  return Response::forge(View::forge('welcome/index')); }}
4. Controllerの定義済みメソッドとプロパティ詳しい解説は省略します  メソッド/プロパティ                 意味  action_index()   メソッド名を省略されたときに実行される  before()         アクションメソッドが実行される前に自動実行  after()          アクションメソッドが実行された後に自動実行  $request         Requestクラスのオブジェクトを保持  $response        Responseクラスのオブジェクトを保持
4. Controllerクラスの種類詳しい解説は省略します        クラス名                         意味   Controller            ベースコントローラ   Controller_Template   ビューでレイアウト機能を使うコントローラ   Controller_Rest       RESTfulなコントローラ                         RestコントローラにTemplateコントローラが備   Controller_Hybrid     わったもの
4. FuelPHPの使い方 - View
4. FuelPHPの使い方 - View •   APPPATH/views以下に配置 •   ファイル名は小文字にします •   拡張子.phpをつけます
4.ViewファイルViewファイルの中身については、本日は割愛します。PHPとHTMLで構成されたファイルです。</head><body>   <div id="header">       <div class="row">          <div id="logo"></div>       </div>   </div>   <div class="container">       <div class="row">          <div class="span16">              <h1><?php echo e($title); ?> <small>We can't find that!</small></h1>              <hr>              <p>The controller generating this page is found at <code>APPPATH/classes/controller/welcome.php</code>.</p>              <p>This view is located at <code>APPPATH/views/welcome/404.php</code>.</p>          </div>       </div>       <footer>          <p class="pull-right">Page rendered in {exec_time}s using {mem_usage}mb of memory.</p>          <p>              <a href="http://fuelphp.com">FuelPHP</a> is released under the MIT license.<br>              <small>Version: <?php echo e(Fuel::VERSION); ?></small>
4.Viewの読み込みコントローラからView::forge('path/view')として読み込むAPPPATH/views/までのパスは省略しますclass Controller_Welcome extends Controller{ public function action_index() {  return View::forge('welcome/index'); }}
4.Viewに値を渡す連想配列で値を渡すレンダリング時にextract()されるのでキーが変数名となりますclass Controller_Welcome extends Controller{ public function action_index() {  $data = array();  $data['name'] = 'foo';  return View::forge('welcome/index', $data); }}
4.Viewに値を渡す他にもset()メソッドを利用して値を渡すclass Controller_Welcome extends Controller{ public function action_index() {  $view = View::forge('welcome/index');  $view->set('name', 'foo');  return $view; }}
4.Viewに値を渡す他にもプロパティに値をセットするclass Controller_Welcome extends Controller{ public function action_index() {  $view = View::forge('welcome/index');  $view->name = 'foo';  return $view; }}
4. テンプレートコントローラとViewテンプレートのレイアウトを行いたいときは、Controller_Templateを継承します                コンテナ       メニュー            メイン
4. FuelPHPの使い方 - Model
4. FuelPHPの使い方 - Model •   APPPATH/classes/model以下に配置 •   ファイル名はモデル名で小文字にします •   Modelクラスを継承します •   クラス名にはModel_プレフィックスをつけます •   クラス名の単語の先頭は大文字にします •   クラス名の単語の区切りにアンダースコアを使うと     サブフォルダを意味してしまうので注意が必要です
4. Modelでのお約束 •Controllerと基本的には同じなので詳細解説は省略します   APPPATH/classes/model以下に配置 •   ファイル名はモデル名で小文字にします •   Modelクラスを継承します •   クラス名にはModel_プレフィックスをつけます •   クラス名の単語の先頭は大文字にします •   クラス名の単語の区切りにアンダースコアを使うと     サブフォルダを意味してしまうので注意が必要です
4. Modelクラスの種類詳しい解説は省略します      クラス名                  意味  Model          ベースモデル  Model_Crud     CRUD処理をするモデル  OrmModel      ORMパッケージ
4. oilコマンドでModelを作ってみる
4. oilコマンドでModelを作ってみる名前とパスワードとemailを持つユーザテーブルを作りたいとした場合CREATE TABLE user (    id int(11) auto_increment   ,name varchar(50)   ,password varchar(255)   ,email varchar(255));
4. oilコマンドでModelを作ってみるoilコマンドだとこんな感じ$ oil g model user name:varchar[50] password:string email:string
4. oilコマンドでModelを作ってみるテーブル名$ oil g model user name:varchar[50] password:string email:string
4. oilコマンドでModelを作ってみるフィールド名$ oil g model user name:varchar[50] password:string email:string
4. oilコマンドでModelを作ってみるフィールドの型$ oil g model user name:varchar[50] password:string email:string
4. oilコマンドでModelを作ってみるマイグレーションを実行し、テーブルを作成します$ oil g model user name:varchar[50] password:string email:string$ oil refine migrate
4. oilコマンドでModelを作ってみる Userモデルができた! テーブルもできた!class Model_User extends OrmModel{   protected static $_properties = array(     'id',     'name',     'password',     'email',     'created_at',     'updated_at'   );   protected static $_observers = array(      'OrmObserver_CreatedAt' => array(         'events' => array('before_insert'),         'mysql_timestamp' => false,      ),      'OrmObserver_UpdatedAt' => array(         'events' => array('before_save'),         'mysql_timestamp' => false,      ),   );}
4. oilコマンドでModelを作ってみる 例えば、こんな風に書いておけば、Fieldsetクラスで自動 的にフォームを作ってくれたり、バリデートしてくれたりclass Model_User extends OrmModel{   protected static $_properties = array(     'id',     'name' => array(        'data_type' => 'varchar',        'label'     => 'お名前',          'validation' => array('required'),          'form'       => array('type' => 'text'),          'default'    => '',       ),       'password',       'email',       'created_at',       'updated_at'   );   // 略
4. oilコマンドでModelを作ってみる リレーションの設定はこんな感じclass Model_User extends OrmModel{   protected static $_properties = array(     'id',     'name',     'password',     'email',     'created_at',     'updated_at'   );   protected static $_has_many = array(       comments => array(        'model_to'       => 'Model_Comment',        'key_from'       => 'id',        'key_to'         => 'user_id',        'cascade_save' => false,        'cascade_delete' => true,   ));    // 略
4. FuelPHPの使い方説明できてないことの方が多いですが、FuelPHPのざっくりとした使い方は以上です
5. セキュリティについて
5. セキュリティについて代表的なウェブアプリケーションのセキュリティリスクと対応状況         リスク名        対応状況                ビューへ渡す値は自動的にエ  XSS                スケープされる                クエリビルダ、ORMパッケー  SQLインジェクション   ジを使えば、自動的にエス                ケープされる                Cookieを使ったトークンを作  CSRF          るクラスが用意されている。                手動で利用する
5. セキュリティについて出力フィルタ、URIフィルタはSecurity::htmlentities()が使われます
5. セキュリティについて 出力フィルタ、URIフィルタはSecurity::htmlentities()が使わ れます中身   public static function htmlentities($value, $flags = null, $encoding = null, $double_encode = null)   {      static $already_cleaned = array();      is_null($flags) and $flags = Config::get('security.htmlentities_flags', ENT_QUOTES);      is_null($encoding) and $encoding = Fuel::$encoding;      is_null($double_encode) and $double_encode = Config::get('security.htmlentities_double_encode', false);      // 略      if (is_string($value))      {          $value = htmlentities($value, $flags, $encoding, $double_encode);      }      // 略
5. セキュリティについて
5. セキュリティについて•   ある程度は、自動的に保護してくれる•   または保護をするクラスが用意されている•   ただ過信は禁物!•   ウェブアプリケーション制作に関わる以上、アンテナを    常に張りセキュリティに関する知識を高めておく必要が    ある
6. その他ざっくりと
6. 開発補助 - デバッグエラーがあった場合は整形して表示してくれます
6. 開発補助 - プロファイラconfig で 'profiling' => true にすることで、プロファイラが使えます
6. コアクラス一覧•   Agent        •   Form         •   Package•   Arr          •   Format       •   Pagination•   Asset        •   Ftp          •   Profiler•   Autoloader   •   Fuel         •   Redis•   Cache        •   Html         •   Request•   Cli          •   Image        •   Response•   Config        •   Inflector     •   Router•   Cookie       •   Input        •   Security•   Crypt        •   Lang         •   Session•   Database     •   Log          •   Str•   Date         •   Markdown     •   Theme•   Debug        •   Migrate      •   Upload•   Event        •   Model_Crud   •   Uri•   Fieldset     •   Module       •   Validation•   File         •   Mongo_Db     •   View•   Finder       •   Num
7月1日から20日間FuelPHPを触ってみた感想 •   必要な機能は大凡そろってるかなー •   シンプルで、やりたいことがサクッとできるイメージ •   ただ、フィーチャーフォン(いわゆるガラケー)向け     のウェブアプリを作ったりするのは苦手分野かな?     (ただ単に調べきれてないとも言う) •   その辺は、CakePHPとかの方が一日の長がある感じ •   まあ実質1週間くらいしか触ってないけどね!
こんな人にはFuelPHPを勧めてみます •   現場から少し離れてたけど、やっぱり自分でもアプリ     ケーションを作りたい人 •   WordPress等を通してPHPでのアプリケーション制作に     興味を持ったけど、何から手を付けたら良いかわから     ない人 •   CodeIgniterのライセンス騒動に疲弊した人 •   このスライドを通して興味を持ったもの皆
参考文献とかウェブページとかFuelPHP 公式サイト(英語)http://fuelphp.com/FuelPHP日本語訳ドキュメントhttp://press.nekoget.com/fuelphp_doc/FuelPHP Google グループhttp://groups.google.com/group/fuelphp_jp
参考文献とかウェブページとか     FuelPHP 入門     2012年6月20日 初版 第1刷発行     ブログ作成を通して、FuelPHPの使い方等を学びます。     フォーム処理、認証管理、メール送信等。     はじめてのフレームワークとしての FuelPHP     2012年7月2日 バージョン0.9.0発行     フレームワークとはなんぞやという所から始まって、FuelPHPを用いた     ウェブアプリケーション作成について学びます。テスト手法について     しっかりと書かれているのが好印象。電子書籍のみの販売。     達人出版会     http://tatsu-zine.com/books/fuelphp1st
勉強会のお知らせ スイミー http://swimmy.me/
勉強会のお知らせ•   ウェブプログラマ向けの勉強会をやってます•   PC持ち込んでやる勉強会です•   月に1∼2回くらいのペースです•   現在はPHPerも、ちゃんとCIしようってことで、    Jenkinsの勉強をしています•   一人で悩んでても仕方ない!がコンセプトなので、    皆さんもお気軽に、ご参加ください!
さいごに このような機会を与えてくださってあ りがとうございました。 おかげで目標を持って勉強することが できました。
さいごに   ご清聴ありがとうございました            @mawatarin
Ad

Recommended

PPTX
Startup science 2018 8 MVPを構築する
Masa Tadokoro
 
PDF
Appleとgoogleのデザインガイドライン比較~スマートフォン向けwebデザインのポイント~
Tomoyuki Arasuna
 
PDF
ユーザーインタビューからその後どうするの? 得られた情報を「UXデザイン」に落とし込む方法 | UXデザイン基礎セミナー 第3回
Yoshiki Hayama
 
PPTX
9コマシナリオの使い方
Mayumi Okusa
 
PDF
UX、デザイン思考、リーンスタートアップのためのオブザベーション(観察)入門:2014年7月5日 UXD/HCD ワイワイCAFE
Yoshiki Hayama
 
PDF
ユーザーインタビューするときは、どうやらゾンビのおでましさ
Yoshiki Hayama
 
PDF
確実に良くするUI/UX設計
Takayuki Fukatsu
 
PDF
プロジェクト・マネジメント方法論 ~スケジュール・納期・品質を管理する力~
Kazuaki ODA
 
PPTX
ジョブ理論をなんとなく理解する
haruka iwama
 
PDF
ウェブデザインに応用する4つの基本原則
Tomoyuki Arasuna
 
PDF
UXデザインの為のIA(情報アーキテクチャ)
インターリンク株式会社
 
PPTX
SQLを書こう (実践編 - 合計残高試算表)
nakajima_yuji
 
PDF
Data × UX - 定量分析と定性分析のシナジーをガチUXデザイナーが語る
Yoshiki Hayama
 
PDF
プレゼン初心者にありがちなアンチパターン
真俊 横田
 
PDF
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
schoowebcampus
 
PDF
もしプロダクトマネージャー・プロダクトチームにUXリサーチのメンターがついたら <レクイエム>
Yoshiki Hayama
 
PDF
UXデザインのはじめの一歩を体験しよう! ユーザーインタビュー、ユーザー心理分析の基本:DevLOVE関西
Yoshiki Hayama
 
PDF
優れたデザインの 定義と思考方法
Junichi Izumi
 
PDF
事例で学ぶデザインの原則 by Life is Tech !
Naoki Kanazawa
 
PDF
誰に何を伝える?わたしの デザインコンセプトの 作り方、探し方
Ayaka Sumida
 
PDF
【2023年版】UXデザインの資格ってどんなの? HCD-Net認定 人間中心設計スペシャリスト・人間中心設計専門家
Yoshiki Hayama
 
PDF
DXとデザイン思考 -実践にみる、DX推進におけるデザインの有用性と可能性-
Concent, Inc.
 
PDF
つくらない ものづくり ~明日からできるリーンスタートアップ~
圭 進藤
 
PDF
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
takaaya
 
PDF
プロが生実演! 「ユーザーインタビュー」の深掘りテクニックを大公開!
Yoshiki Hayama
 
PDF
UXデザインの海外最新「UXトレンドレポート2022」を読んで、考える
Yoshiki Hayama
 
PDF
4つの戦犯から考えるサービスづくりの失敗
toshihiro ichitani
 
PPTX
Spring 5に備えるリアクティブプログラミング入門
Takuya Iwatsuka
 
PPTX
今、最も勢いのあるWebフレームワーク「fuel php」
Soudai Sone
 
KEY
CakePHP vs FuelPHP
Sotaro Omura
 

More Related Content

What's hot(20)

PPTX
ジョブ理論をなんとなく理解する
haruka iwama
 
PDF
ウェブデザインに応用する4つの基本原則
Tomoyuki Arasuna
 
PDF
UXデザインの為のIA(情報アーキテクチャ)
インターリンク株式会社
 
PPTX
SQLを書こう (実践編 - 合計残高試算表)
nakajima_yuji
 
PDF
Data × UX - 定量分析と定性分析のシナジーをガチUXデザイナーが語る
Yoshiki Hayama
 
PDF
プレゼン初心者にありがちなアンチパターン
真俊 横田
 
PDF
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
schoowebcampus
 
PDF
もしプロダクトマネージャー・プロダクトチームにUXリサーチのメンターがついたら <レクイエム>
Yoshiki Hayama
 
PDF
UXデザインのはじめの一歩を体験しよう! ユーザーインタビュー、ユーザー心理分析の基本:DevLOVE関西
Yoshiki Hayama
 
PDF
優れたデザインの 定義と思考方法
Junichi Izumi
 
PDF
事例で学ぶデザインの原則 by Life is Tech !
Naoki Kanazawa
 
PDF
誰に何を伝える?わたしの デザインコンセプトの 作り方、探し方
Ayaka Sumida
 
PDF
【2023年版】UXデザインの資格ってどんなの? HCD-Net認定 人間中心設計スペシャリスト・人間中心設計専門家
Yoshiki Hayama
 
PDF
DXとデザイン思考 -実践にみる、DX推進におけるデザインの有用性と可能性-
Concent, Inc.
 
PDF
つくらない ものづくり ~明日からできるリーンスタートアップ~
圭 進藤
 
PDF
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
takaaya
 
PDF
プロが生実演! 「ユーザーインタビュー」の深掘りテクニックを大公開!
Yoshiki Hayama
 
PDF
UXデザインの海外最新「UXトレンドレポート2022」を読んで、考える
Yoshiki Hayama
 
PDF
4つの戦犯から考えるサービスづくりの失敗
toshihiro ichitani
 
PPTX
Spring 5に備えるリアクティブプログラミング入門
Takuya Iwatsuka
 
ジョブ理論をなんとなく理解する
haruka iwama
 
ウェブデザインに応用する4つの基本原則
Tomoyuki Arasuna
 
UXデザインの為のIA(情報アーキテクチャ)
インターリンク株式会社
 
SQLを書こう (実践編 - 合計残高試算表)
nakajima_yuji
 
Data × UX - 定量分析と定性分析のシナジーをガチUXデザイナーが語る
Yoshiki Hayama
 
プレゼン初心者にありがちなアンチパターン
真俊 横田
 
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
schoowebcampus
 
もしプロダクトマネージャー・プロダクトチームにUXリサーチのメンターがついたら <レクイエム>
Yoshiki Hayama
 
UXデザインのはじめの一歩を体験しよう! ユーザーインタビュー、ユーザー心理分析の基本:DevLOVE関西
Yoshiki Hayama
 
優れたデザインの 定義と思考方法
Junichi Izumi
 
事例で学ぶデザインの原則 by Life is Tech !
Naoki Kanazawa
 
誰に何を伝える?わたしの デザインコンセプトの 作り方、探し方
Ayaka Sumida
 
【2023年版】UXデザインの資格ってどんなの? HCD-Net認定 人間中心設計スペシャリスト・人間中心設計専門家
Yoshiki Hayama
 
DXとデザイン思考 -実践にみる、DX推進におけるデザインの有用性と可能性-
Concent, Inc.
 
つくらない ものづくり ~明日からできるリーンスタートアップ~
圭 進藤
 
アプリを生み出す現場でUI/UXデザイナーが意識するべきこと:RoomClip
takaaya
 
プロが生実演! 「ユーザーインタビュー」の深掘りテクニックを大公開!
Yoshiki Hayama
 
UXデザインの海外最新「UXトレンドレポート2022」を読んで、考える
Yoshiki Hayama
 
4つの戦犯から考えるサービスづくりの失敗
toshihiro ichitani
 
Spring 5に備えるリアクティブプログラミング入門
Takuya Iwatsuka
 

Viewers also liked(20)

PPTX
今、最も勢いのあるWebフレームワーク「fuel php」
Soudai Sone
 
KEY
CakePHP vs FuelPHP
Sotaro Omura
 
KEY
FuelPHPをさわってみて
Sotaro Omura
 
PDF
はじめての FuelPHP
Sho A
 
KEY
FuelPHP + Pagoda Box
Sotaro Omura
 
PDF
Fuel php勉強会東京vol2 発表資料_モデル間リレーション
web2citizen
 
PDF
Ospn fuel php
Kenichi Mukai
 
PDF
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
 
KEY
PHPカンファレンス 2012 フレームワークアップデート FuelPHP
Kenichi Mukai
 
PDF
ぺちぱな。 はじまり
Ryo Tajima
 
PDF
あにみた!(PHPカンファレンス用資料)
Hiroyuki Ishiyama
 
PDF
Let’s translate FuelPHP docs!
Sho A
 
PDF
Fuel php osc tokyo2012
Fumito Mizuno
 
PDF
フレームワーク入門書の決定版が完成
kenjis
 
PDF
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
 
PDF
10分でわかるFuelPHP @ OSC2013 Nagoya
kenjis
 
PDF
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
 
PDF
10分でわかるFuelPHP @ 2011/12
kenjis
 
PDF
C#の強み、或いは何故PHPから乗り換えるのか
Yoshifumi Kawai
 
PPTX
PHPCON fukuoka 2015 CodeIgniter update
Takako Miyagawa
 
今、最も勢いのあるWebフレームワーク「fuel php」
Soudai Sone
 
CakePHP vs FuelPHP
Sotaro Omura
 
FuelPHPをさわってみて
Sotaro Omura
 
はじめての FuelPHP
Sho A
 
FuelPHP + Pagoda Box
Sotaro Omura
 
Fuel php勉強会東京vol2 発表資料_モデル間リレーション
web2citizen
 
Ospn fuel php
Kenichi Mukai
 
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
 
PHPカンファレンス 2012 フレームワークアップデート FuelPHP
Kenichi Mukai
 
ぺちぱな。 はじまり
Ryo Tajima
 
あにみた!(PHPカンファレンス用資料)
Hiroyuki Ishiyama
 
Let’s translate FuelPHP docs!
Sho A
 
Fuel php osc tokyo2012
Fumito Mizuno
 
フレームワーク入門書の決定版が完成
kenjis
 
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
 
10分でわかるFuelPHP @ OSC2013 Nagoya
kenjis
 
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
 
10分でわかるFuelPHP @ 2011/12
kenjis
 
C#の強み、或いは何故PHPから乗り換えるのか
Yoshifumi Kawai
 
PHPCON fukuoka 2015 CodeIgniter update
Takako Miyagawa
 
Ad

Similar to 最近、僕がハマったFuelPHPの紹介(20)

PDF
Osc2014
Soudai Sone
 
PPTX
FuelPHPにアプリと管理ツールを同居してみる
Makoto Shimoda
 
PDF
Phpunit at excite
yuki777
 
PDF
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
 
PDF
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
 
PDF
第21回Creators MeetUp
Kenichi Mukai
 
PDF
behatエクステンションの作り方
Ryo Tomidokoro
 
PDF
ChefユーザのためのAnsible入門
Mahito Ogura
 
PPTX
Xhprof
Hisashi Aruji
 
PPTX
Fuelphp1.8を始めたい
運営 sollastudio
 
PDF
FukuokaPHP 3
ichikaway
 
PPT
2009 PHP初心者
Hideo Kashioka
 
PDF
Chef
yaasita
 
KEY
WordPressプラグイン作成入門
Yuji Nojima
 
PDF
Spring Framework ふりかえりと4.3新機能
kimulla
 
PDF
NetBeansではじめる FuelPHP
Junichi Yamamoto
 
PDF
20091030cakephphandson 01
Yusuke Ando
 
PDF
How to run P4 BMv2
Kentaro Ebisawa
 
PPTX
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
Mika Kane
 
PPT
Apache Module
Tomohiro Ikebe
 
Osc2014
Soudai Sone
 
FuelPHPにアプリと管理ツールを同居してみる
Makoto Shimoda
 
Phpunit at excite
yuki777
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
 
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
 
第21回Creators MeetUp
Kenichi Mukai
 
behatエクステンションの作り方
Ryo Tomidokoro
 
ChefユーザのためのAnsible入門
Mahito Ogura
 
Fuelphp1.8を始めたい
運営 sollastudio
 
FukuokaPHP 3
ichikaway
 
2009 PHP初心者
Hideo Kashioka
 
Chef
yaasita
 
WordPressプラグイン作成入門
Yuji Nojima
 
Spring Framework ふりかえりと4.3新機能
kimulla
 
NetBeansではじめる FuelPHP
Junichi Yamamoto
 
20091030cakephphandson 01
Yusuke Ando
 
How to run P4 BMv2
Kentaro Ebisawa
 
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
Mika Kane
 
Apache Module
Tomohiro Ikebe
 
Ad

Recently uploaded(11)

PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
PDF
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
PDF
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
PPTX
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
 
PDF
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
 
PDF
2023年版Web3技術の理想と現実
Syuhei Hiya
 
PDF
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
PPTX
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
 
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
 
2023年版Web3技術の理想と現実
Syuhei Hiya
 
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 

最近、僕がハマったFuelPHPの紹介

Editor's Notes


[8]ページ先頭

©2009-2025 Movatter.jp