SlideShare uma empresa Scribd logo
1 de 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.php

class Controller_Welcome extends Controller
{
	

 public function action_index()
	

 {
	

 	

 return Response::forge(View::forge('welcome/index'));
	

 }
}
4. Controllerでのお約束
 Controllerクラスを継承します


APPPATH/classes/controller/welcome.php

class Controller_Welcome extends Controller
{
	

 public function action_index()
	

 {
	

 	

 return Response::forge(View::forge('welcome/index'));
	

 }
}
4. Controllerでのお約束
 Controller_プレフィックスをつけます


APPPATH/classes/controller/welcome.php

class Controller_Welcome extends Controller
{
	

 public function action_index()
	

 {
	

 	

 return Response::forge(View::forge('welcome/index'));
	

 }
}
4. Controllerでのお約束
 クラス名の単語の先頭は大文字にします


APPPATH/classes/controller/welcome.php

class Controller_Welcome extends Controller
{
	

 public function action_index()
	

 {
	

 	

 return Response::forge(View::forge('welcome/index'));
	

 }
}
4. Controllerでのお約束
 クラス名の単語の区切りにアンダースコアを使うとサブ
 フォルダを意味します

APPPATH/classes/controller/welcome/member.php

class Controller_Welcome_Member extends Controller
{
	

 public function action_index()
	

 {
	

 	

 return Response::forge(View::forge('welcome/index'));
	

 }
}
4. ControllerとURLの関係
 第一セグメントがクラス名


http://localhost/welcome/index

class Controller_Welcome extends Controller
{
	

 public function action_index()
	

 {
	

 	

 return Response::forge(View::forge('welcome/index'));
	

 }
}
4. ControllerとURLの関係
 第二セグメントがメソッド名


http://localhost/welcome/index

class Controller_Welcome extends Controller
{
	

 public function action_index()
	

 {
	

 	

 return Response::forge(View::forge('welcome/index'));
	

 }
}
4. ControllerとURLの関係
 ブラウザから実行されるメソッド(アクションメソッ
 ド)には、action_プレフィックスをつけます

http://localhost/welcome/index

class Controller_Welcome extends Controller
{
	

 public function action_index()
	

 {
	

 	

 return Response::forge(View::forge('welcome/index'));
	

 }
}
4. ControllerとURLの関係
 第三セグメント以降はパラメータ
 受け取りの際はデフォルト値を設定しておいた方が無難

http://localhost/welcome/index/123

class 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

Mais conteúdo relacionado

Mais procurados

Management 3.0 - マネジメントとリーダーシップ
Management 3.0 - マネジメントとリーダーシップManagement 3.0 - マネジメントとリーダーシップ
Management 3.0 - マネジメントとリーダーシップStefan Nüsperling
 
大規模データ時代に求められる自然言語処理
大規模データ時代に求められる自然言語処理大規模データ時代に求められる自然言語処理
大規模データ時代に求められる自然言語処理Preferred Networks
 
Prophet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールProphet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールhoxo_m
 
TokyoR101_BeginnersSession2.pdf
TokyoR101_BeginnersSession2.pdfTokyoR101_BeginnersSession2.pdf
TokyoR101_BeginnersSession2.pdfkotora_0507
 
ggplot2用例集 入門編
ggplot2用例集 入門編ggplot2用例集 入門編
ggplot2用例集 入門編nocchi_airport
 
Customized Regression Model for Airbnb Dynamic Pricing
Customized Regression Model for Airbnb Dynamic PricingCustomized Regression Model for Airbnb Dynamic Pricing
Customized Regression Model for Airbnb Dynamic Pricingharmonylab
 
20160417dlibによる顔器官検出
20160417dlibによる顔器官検出20160417dlibによる顔器官検出
20160417dlibによる顔器官検出Takuya Minagawa
 
[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering
[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering
[DL輪読会](Sequential) Variational Autoencoders for Collaborative FilteringDeep Learning JP
 
君にグロースハックはいらない
君にグロースハックはいらない君にグロースハックはいらない
君にグロースハックはいらないTakaaki Umada
 
スタートアップは行動しない / フォーカス、ツール、オペレーションについて
スタートアップは行動しない / フォーカス、ツール、オペレーションについてスタートアップは行動しない / フォーカス、ツール、オペレーションについて
スタートアップは行動しない / フォーカス、ツール、オペレーションについてTakaaki Umada
 
Power Platform +αを活用すると家計簿はこんなにも便利になる
Power Platform +αを活用すると家計簿はこんなにも便利になるPower Platform +αを活用すると家計簿はこんなにも便利になる
Power Platform +αを活用すると家計簿はこんなにも便利になるJunichi Kodama
 
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinxドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinxTakayuki Shimizukawa
 
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)Tokoroten Nakayama
 
Real-time personalized recommendation using embedding
Real-time personalized recommendation using embeddingReal-time personalized recommendation using embedding
Real-time personalized recommendation using embeddingRecruit Lifestyle Co., Ltd.
 
Sano tokyowebmining 201625_v04
Sano tokyowebmining 201625_v04Sano tokyowebmining 201625_v04
Sano tokyowebmining 201625_v04Masakazu Sano
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?Takuya Ueda
 
セールスアニマルになろう スタートアップ初期の営業戦略
セールスアニマルになろう スタートアップ初期の営業戦略セールスアニマルになろう スタートアップ初期の営業戦略
セールスアニマルになろう スタートアップ初期の営業戦略Takaaki Umada
 
転職基準 スタートアップへの転職を検討するための予備知識
転職基準 スタートアップへの転職を検討するための予備知識転職基準 スタートアップへの転職を検討するための予備知識
転職基準 スタートアップへの転職を検討するための予備知識Takaaki Umada
 
協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築Masayuki Ota
 

Mais procurados (20)

Management 3.0 - マネジメントとリーダーシップ
Management 3.0 - マネジメントとリーダーシップManagement 3.0 - マネジメントとリーダーシップ
Management 3.0 - マネジメントとリーダーシップ
 
大規模データ時代に求められる自然言語処理
大規模データ時代に求められる自然言語処理大規模データ時代に求められる自然言語処理
大規模データ時代に求められる自然言語処理
 
Prophet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツールProphet入門【理論編】Facebookの時系列予測ツール
Prophet入門【理論編】Facebookの時系列予測ツール
 
TokyoR101_BeginnersSession2.pdf
TokyoR101_BeginnersSession2.pdfTokyoR101_BeginnersSession2.pdf
TokyoR101_BeginnersSession2.pdf
 
ggplot2用例集 入門編
ggplot2用例集 入門編ggplot2用例集 入門編
ggplot2用例集 入門編
 
Customized Regression Model for Airbnb Dynamic Pricing
Customized Regression Model for Airbnb Dynamic PricingCustomized Regression Model for Airbnb Dynamic Pricing
Customized Regression Model for Airbnb Dynamic Pricing
 
20160417dlibによる顔器官検出
20160417dlibによる顔器官検出20160417dlibによる顔器官検出
20160417dlibによる顔器官検出
 
[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering
[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering
[DL輪読会](Sequential) Variational Autoencoders for Collaborative Filtering
 
君にグロースハックはいらない
君にグロースハックはいらない君にグロースハックはいらない
君にグロースハックはいらない
 
スタートアップは行動しない / フォーカス、ツール、オペレーションについて
スタートアップは行動しない / フォーカス、ツール、オペレーションについてスタートアップは行動しない / フォーカス、ツール、オペレーションについて
スタートアップは行動しない / フォーカス、ツール、オペレーションについて
 
Power Platform +αを活用すると家計簿はこんなにも便利になる
Power Platform +αを活用すると家計簿はこんなにも便利になるPower Platform +αを活用すると家計簿はこんなにも便利になる
Power Platform +αを活用すると家計簿はこんなにも便利になる
 
Spring tools4
Spring tools4Spring tools4
Spring tools4
 
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinxドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinx
 
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
 
Real-time personalized recommendation using embedding
Real-time personalized recommendation using embeddingReal-time personalized recommendation using embedding
Real-time personalized recommendation using embedding
 
Sano tokyowebmining 201625_v04
Sano tokyowebmining 201625_v04Sano tokyowebmining 201625_v04
Sano tokyowebmining 201625_v04
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
 
セールスアニマルになろう スタートアップ初期の営業戦略
セールスアニマルになろう スタートアップ初期の営業戦略セールスアニマルになろう スタートアップ初期の営業戦略
セールスアニマルになろう スタートアップ初期の営業戦略
 
転職基準 スタートアップへの転職を検討するための予備知識
転職基準 スタートアップへの転職を検討するための予備知識転職基準 スタートアップへの転職を検討するための予備知識
転職基準 スタートアップへの転職を検討するための予備知識
 
協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築
 

Destaque

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

Destaque (20)

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

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

FuelPHPにアプリと管理ツールを同居してみる
FuelPHPにアプリと管理ツールを同居してみるFuelPHPにアプリと管理ツールを同居してみる
FuelPHPにアプリと管理ツールを同居してみるMakoto Shimoda
 
Phpunit at excite
Phpunit at excitePhpunit at excite
Phpunit at exciteyuki777
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)Rui Hirokawa
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterMasanori Oobayashi
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUpKenichi Mukai
 
behatエクステンションの作り方
behatエクステンションの作り方behatエクステンションの作り方
behatエクステンションの作り方Ryo Tomidokoro
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門Mahito Ogura
 
FukuokaPHP 3
FukuokaPHP 3FukuokaPHP 3
FukuokaPHP 3ichikaway
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門Yuji Nojima
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能kimulla
 
NetBeansではじめる FuelPHP
NetBeansではじめる FuelPHPNetBeansではじめる FuelPHP
NetBeansではじめる FuelPHPJunichi Yamamoto
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01Yusuke Ando
 
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 Mika Kane
 

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

Osc2014
Osc2014Osc2014
Osc2014
 
FuelPHPにアプリと管理ツールを同居してみる
FuelPHPにアプリと管理ツールを同居してみるFuelPHPにアプリと管理ツールを同居してみる
FuelPHPにアプリと管理ツールを同居してみる
 
Phpunit at excite
Phpunit at excitePhpunit at excite
Phpunit at excite
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUp
 
behatエクステンションの作り方
behatエクステンションの作り方behatエクステンションの作り方
behatエクステンションの作り方
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門
 
Xhprof
XhprofXhprof
Xhprof
 
Fuelphp1.8を始めたい
Fuelphp1.8を始めたいFuelphp1.8を始めたい
Fuelphp1.8を始めたい
 
FukuokaPHP 3
FukuokaPHP 3FukuokaPHP 3
FukuokaPHP 3
 
2009 PHP初心者
2009 PHP初心者2009 PHP初心者
2009 PHP初心者
 
Chef
ChefChef
Chef
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
 
NetBeansではじめる FuelPHP
NetBeansではじめる FuelPHPNetBeansではじめる FuelPHP
NetBeansではじめる FuelPHP
 
20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
 
Apache Module
Apache ModuleApache Module
Apache Module
 

Último

「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦Sadao Tokuyama
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 

Último (12)

「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
 
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 

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

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n