SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Downloaden Sie, um offline zu lesen
CakeMatsuriワークショップ
 快適アプリケーション開発入門


            2009/10/30 yandod
                                1
アジェンダ


 CakePHPとは
 つぶやきサービスを作ろう
   セットアップ
   MVCの作成、データの表示
   フォームの扱い、データの保存
   レイアウトの適用‫‏‬



                    2
CakePHPとは



            3
公式サイト




        http://www.cakephp.org/
                                  4
コンセプト




全てのレベルのPHPユーザが
素早く安定したウェブアプリ
ケーションを開発が行える事
つまり


初心者でも手軽に開発がで
  きる親しみやすさ
上級者がとことん使いこんで
  いけるだけの拡張性

      この2つを両立
具体的な特徴

面倒なインストール・設定作業はほぼ皆無
小さなプログラムだけで機能を実現できる
PHP4/PHP5に両対応
サーバやコマンドライン、ライブラリの知識は丌要
Ruby on Railsにとてもよく似たMVCモデル
ルールを知ってると何だか楽になる原則



                              7
2007年頃から日本国内でも爆発的に普及




     着実にユーザ層が拡大中
                       8
東京でのCakePHP勉強会




   30人 → 50人 → 70人 → 140人
                            9
各国でのイベントも活発




              10
つぶやきサービスを作ろう
CakePHPで作るマイクログログ




                    11
今回作成するアプリケーション




    http://labs.strk.jp/code-fight/blog/
                                           12
題材選定の目的

仕様がシンプルで理解しやすい
データ表示、保存、AJAXなどの要素が揃っている
素材の提供を許可してくださったsotarokさんに感謝




                              13
通常は公式サイトからダウンロード




                   14
セットアップ

取得した圧縮ファイルを展開
展開したファイルをPHPが動作する場所へ配置
設定ファイルを修正
コマンドライン作業などは必要なし




                         15
CakePHPのディレクトリ構造


            設定ファイル
            コントローラー(よく使う)
            モデル(よく使う)



            ビュー(よく使う)

            フレームワーク本体


                            16
注意




    セットアップ時に
 変更する設定が環境によっ
  て異なる場合があります
index.phpへアクセス




    上の通りのオールグリーンの表示があればOK
                            18
なんかおかしい例




    mod_rewriteが動いていないとこうなる
                              19
対処方法(mod_rewriteの設定)
 (推奨)httpd.conf を変更し、apache再起動
 #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
 #LoadModule rewrite_module modules/mod_rewrite.so
 LoadModule setenvif_module modules/mod_setenvif.so      コメント解除


 Apacheの設定が変更できない場合は core.php
//Configure::write('App.baseUrl', env('SCRIPT_NAME'));
                                                         コメント解除


    後者の場合は今後のURLに常にindex.phpを付ける事に
      /pages/home → index.php/pages/home

                                                                  20
データベース設定

余計な問題を避ける為に極力 UTF8を使う。
phpMyAdminの設定ミスなどが原因で文字化けが起
こりがち
テーブル名やカラム名はCakePHPのルールに従うと
楽ができます。
好きな名前を使っても、追加の設定を行えば対応で
きます。




                              21
サンプルデータの登録
CREATE TABLE IF NOT EXISTS `posts` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `user_id` int(11) NOT NULL,
 `body` text COLLATE utf8_unicode_ci,
 `created` datetime DEFAULT NULL,
 `modified` datetime DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `posts` (`id`, `user_id`, `body`, `created`, `modified`) VALUES
(1, 1, 'これは、記事の本文です。', '2009-10-10 01:06:07', '2009-10-10
01:23:17'),
(2, 1, 'そこに本文が続きます。', '2009-10-10 01:06:07', '2009-10-10
01:23:58'),
(3, 1, 'こりゃ本当に面白そう!うそ。', '2009-10-10 01:06:07', '2009-10-10
01:24:08'),

                                                                              22
設定ファイル (database.php)の作成
class DATABASE_CONFIG {

var $default = array(
         'driver' => 'mysql',
         'persistent' => false,
         'host' => 'localhost',
         'login' => 'root',
         'password' => '',
         'database' => 'matsutter',
                                      文字化け対策
         'encoding' => 'utf8',
         'prefix' => '',
);



    app/config/database.php.default をコピーして作成
                                               23
実習 1-0


 ワークショップ用のCakePHP
 をセットアップしてみましょう
http://groups.google.co.jp/group/cakematsuri-workshop

PHPが動く場所に設置
app/config/sql/dump.sqlのデータを登録
database.php.defaultをコピーしてパスワード設定
基本のコーディング作業

処理の入り口を担当するController
データベースとのやりとりやロジックを担当するModel
画面を表示するView




                              25
理屈はともかく・・・




 MVCのパーツを順次作成するのが
      基本のサイクル




                    26
Modelの作成
<?php
class Post extends AppModel
{
   var $name = 'Post';
}




                 app/model/post.php として作成



         ※Modelは標準では単数形の名前になります。


                                            27
Controllerの作成
<?php
class PostsController extends AppController {
var $name = 'Posts';
         var $scaffold;
}




        app/controller/posts_controller.php として作成



                 $scaffoldによりこれだけで動く!


                                                    28
/posts/ の実行結果




     登録・一覧・ソート・更新・削除が可能
                          29
Controllerへのアクションの追加
<?php
class PostsController extends AppController {
var $name = 'Posts';
          //var $scaffold; //丌要なので消す
function index() {
          $this->set('posts', $this->Post->find('all'));
}
}
?>          Viewに対してpostsという名前でデータを渡す


   Index メソッドを追加した事により、/posts/index へアク
       セスされた場合に実行する処理を定義できます


                                                           30
Viewの作成

<h1>ほげったー</h1>
<?php echo date(‘Y-m-d’); ?>

        app/views/posts/index.ctp として作成
           (UTF-8で保存する事を忘れずに)




         /posts/index へアクセスされた場合に
              表示する画面を作成します


                                          31
/posts/index の実行結果




          作成したViewが表示される



                           32
(重要)CakePHPの基本ルール

/posts/update にアクセスされた場合
→ PostsControllerのupdate メソッドを実行し
  views/posts/update.ctp を表示
/mypage/home にアクセスされた場合
→ MypageControllerのhome メソッドを実行し
  views/mypage/home.ctp を表示

      ルールを把握してスムーズな作業を!

                                    33
実習 1-1 1-2



Model,Controller,Viewを作る

models/post.php controllers/posts_controller.php
Scaffoldの挙動を確認
Indexアクションと views/posts/index.ctp を作成
自作した画面の表示を確認
データベースから取得したデータを表示する

Modelの機能によりSQLは自動的に実行されて結果
はハッシュとしてControllerで取得できる
ControllerからViewへデータをsetで渡す
Viewでは渡された変数をただ使うだけ




                              35
ViewでControllerのデータを扱う

<?php echo $html->link('つぶやく','/posts/add') ?>
<table>
<tr><th>Id</th><th>user_id</th>
<th>Title</th><th>Created</th></tr>
<?php foreach ($posts as $post): ?>
 <tr>
   <td><?php echo $post['Post']['id']; ?></td>
   <td><?php echo $post['Post']['user_id']; ?></td>
   <td><?php echo $post['Post']['body']; ?></td>
   <td><?php echo $post['Post']['created']; ?></td>
 </tr>
<?php endforeach; ?>
</table>

                                                      36
/posts/index の実行結果




   データベースから取得したデータが表示された!

                            37
実習 1-3



  Modelのデータを表示する

views/posts/index.ctpを修正
新しい画面へのリンクの設置
Controllerから渡した変数のデータ構造に注意
よくわからない時はvar_dump
データベースにデータを登録する

データ登録用の画面を作成
Modelの機能により配列変数を渡すだけでデータを
登録できる
Modelに渡すデータ構造を作ってくれるFormHelperを
つかう
入力制限のチェックも可能




                                  39
Controllerへのアクションの追加(抜粋)‫‏‬

<?php
class PostsController extends AppController {
    function add() {
      if (!empty($this->data)) {
          if ($this->Post->save($this->data)) {
              $this->flash('Your post has been saved.','/posts');
          }
       }
    }
}
?>


                   /posts/add 時の処理を追加
                                                                    40
Viewの追加 add.ctp

<h1>Add Post</h1>
<?php
echo $form->create('Post');
echo $form->input(‘user_id');
echo $form->input('body', array('rows' => '3'));
echo $form->end('Save Post');
?>




               /posts/add 時の画面を追加
               FormHelperでフォームを出力
                                                   41
validateの追加 post.php

<?php
class Post extends AppModel
{
   var $name = 'Post';
   var $validate = array(
     'body' => array(
       'rule' => array('maxLength', 140),
       'allowEmpty' => false),
   );
}


                                            42
/posts/add の実行結果




       入力検証付きの登録画面ができた
                         43
/posts/add の実行結果




        正しい入力をすれば登録される
                         44
実習 1-4



    データ登録機能を作る

views/posts/add.ctp と addアクションを作成
models/post.phpにvalidateの設定を追加
入力チェックの挙動とデータ登録を確認
Controllerへのアクションの追加(抜粋)‫‏‬

<?php
class PostsController extends AppController {
  function delete($id) {
    $this->Post->del($id);
    $this->flash('The post with id: '.$id.' has been deleted.', '/posts');
  }
}              メッセージを表示後に /postsへ移動する
?>




                  /posts/delete 時の処理を追加
                 画面は存在しないのでViewは丌要
                                                                             46
/posts/delete/{id} の実行結果




      urlに付不したidのレコードが削除される。
     必要であればindexなどの画面にリンクを設置

                               47
できた!

Controllerにアクションを追加
アクション内でModelの処理を呼び出す
ViewでControllerから渡されたデータを表示
Helperなどを利用すると記述内容を削減できる



作業の流れが把握できましたか?

                              48
もうすこしカッコよくする




               49
Paginate

データをページ毎に分けて表示する
Controllerの機能とHelperの機能を使って実現
基本的にはイディオムなので丸覚え、コピペで対処可




                                50
Controllerへの設定追加(抜粋)‫‏‬

<?php
class PostsController extends AppController {
  var $name = 'Posts';
  var $paginate = array(
    'order' => array('Post.id' => 'DESC'),
    'limit' => 10
  );                                       ソートなどの設定
  function index() {
    $this->set('posts', $this->paginate('Post'));
  }
                                   Paginateメソッドを使う

    Modelのfindの代わりにControllerのPaginateを使う


                                                      51
Viewの修正 index.ctp

</table>
<?php echo $paginator->prev() ?> &nbsp;
<?php echo $paginator->numbers() ?> &nbsp;
<?php echo $paginator->next() ?>



  ページの末尾にPaginatorヘルパーを呼ぶ処理を追加




                                             52
/posts/index の実行結果




               リンクの表示

                     クエリの自動組立



     自動でクエリを組立てPaginateを実現!
                                53
実習 1-5



     Paginateの組み込み

controllers/posts_controller.phpに設定を追加
views/posts/index.ctp にpaginatorの記述追加
データがページ分けして表示できればOK
レイアウト変更

画面のヘッダー・フッター部分は layoutに存在
通常時はCake標準の default flash などが使われる
デザインを変更する場合は app/view/layouts/ 以
下に default.ctp などを置く
Defalutなど以外を使う場合は layoutプロパティを設
定する




                                    55
レイアウトの変更例


class PostsController extends AppController {
  function help() {
    $this->layout = ‘custom’;
  }
}




 app/view/layouts/custom.ctp をヘッタ・フッタとして利用

                                                56
app/views/layouts/custom.ctp の内容


<html>
<head>
<title><?php echo $title_for_layout; ?></title>
</head>
<?php echo $content_for_layout; ?>
</html>



    $content_for_layout にviewの処理結果が入っている




                                                  57
実行結果




                  あとは自由にCSSなどを設定すればOK



Copyright © YusukeAndo. 2009 - . All rights reserved.
素材を適用




                                大幅にそれっぽくなった
Copyright © YusukeAndo. 2009 - . All rights reserved.
実習 1-6



       layoutの組み込み

views/layouts/default.ctpを素材に入れ替える
views/posts/index.ctpを素材に入れ替える
それっぽい表示を確認
まとめ



      61
まとめ

CakePHPはとても簡単はMVCフレームワーク
さまざまな機能を活用することでコード量を大きく減ら
す事ができる
必要な情報はマニュアル・API・ネットからゲットする
‚Give back as much as you take‛
ブログに書く、誰かに教えてあげるなど自分が得た以
上のものを誰かに不えてあげましょう



                                  62
質疑応答




   ご静聴ありがとうございました。




                     63

Weitere ähnliche Inhalte

Was ist angesagt?

Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーAyumu Kawaguchi
 
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
 
.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説Cherry Pie Web
 
はじめての FuelPHP
はじめての FuelPHPはじめての FuelPHP
はじめての FuelPHPSho A
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門Sho A
 
今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」Soudai Sone
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義ria1201
 
NetBeansではじめる FuelPHP
NetBeansではじめる FuelPHPNetBeansではじめる FuelPHP
NetBeansではじめる FuelPHPJunichi Yamamoto
 
最近、僕がハマったFuelPHPの紹介
最近、僕がハマったFuelPHPの紹介最近、僕がハマったFuelPHPの紹介
最近、僕がハマったFuelPHPの紹介Naoto Mawatari
 
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたFuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたKatsuhiro Miura
 
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 Mika Kane
 
Ansible2.9 ネットワーク対応のアップデート #ansiblejp
Ansible2.9 ネットワーク対応のアップデート #ansiblejpAnsible2.9 ネットワーク対応のアップデート #ansiblejp
Ansible2.9 ネットワーク対応のアップデート #ansiblejpakira6592
 
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月suno88
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜Sotaro Omura
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugY Watanabe
 
CakePHP 1 to 2 Migration tips 100
CakePHP 1 to 2 Migration tips 100CakePHP 1 to 2 Migration tips 100
CakePHP 1 to 2 Migration tips 100ichikaway
 
JobSchedulerでCD(継続的デリバリ)
JobSchedulerでCD(継続的デリバリ)JobSchedulerでCD(継続的デリバリ)
JobSchedulerでCD(継続的デリバリ)OSSラボ株式会社
 

Was ist angesagt? (20)

Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
 
実"戦"CakePHP Plugin
実"戦"CakePHP Plugin実"戦"CakePHP Plugin
実"戦"CakePHP Plugin
 
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
 
.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説
 
はじめての FuelPHP
はじめての FuelPHPはじめての FuelPHP
はじめての FuelPHP
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門
 
今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
 
Vue入門
Vue入門Vue入門
Vue入門
 
NetBeansではじめる FuelPHP
NetBeansではじめる FuelPHPNetBeansではじめる FuelPHP
NetBeansではじめる FuelPHP
 
最近、僕がハマったFuelPHPの紹介
最近、僕がハマったFuelPHPの紹介最近、僕がハマったFuelPHPの紹介
最近、僕がハマったFuelPHPの紹介
 
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたFuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみた
 
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
 
Ansible2.9 ネットワーク対応のアップデート #ansiblejp
Ansible2.9 ネットワーク対応のアップデート #ansiblejpAnsible2.9 ネットワーク対応のアップデート #ansiblejp
Ansible2.9 ネットワーク対応のアップデート #ansiblejp
 
Flask勉強会その1
Flask勉強会その1Flask勉強会その1
Flask勉強会その1
 
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
 
CakePHP 1 to 2 Migration tips 100
CakePHP 1 to 2 Migration tips 100CakePHP 1 to 2 Migration tips 100
CakePHP 1 to 2 Migration tips 100
 
JobSchedulerでCD(継続的デリバリ)
JobSchedulerでCD(継続的デリバリ)JobSchedulerでCD(継続的デリバリ)
JobSchedulerでCD(継続的デリバリ)
 

Andere mochten auch

20091030cakephphandson 02
20091030cakephphandson 0220091030cakephphandson 02
20091030cakephphandson 02Yusuke Ando
 
Engine Yard Cloud
Engine Yard CloudEngine Yard Cloud
Engine Yard CloudYusuke Ando
 
Cake Php キャッシュのやり方
Cake Php キャッシュのやり方Cake Php キャッシュのやり方
Cake Php キャッシュのやり方柴田 篤志
 
20120507 zendform
20120507 zendform20120507 zendform
20120507 zendformYusuke Ando
 
20090905 Cake Php
20090905 Cake Php20090905 Cake Php
20090905 Cake PhpYusuke Ando
 
【公式資料】第2回クラウド・マーケティング研究会オープニングセッション
【公式資料】第2回クラウド・マーケティング研究会オープニングセッション【公式資料】第2回クラウド・マーケティング研究会オープニングセッション
【公式資料】第2回クラウド・マーケティング研究会オープニングセッションShu Takeda
 
Apresentação mahara
Apresentação maharaApresentação mahara
Apresentação maharaPoetray
 

Andere mochten auch (8)

20091030cakephphandson 02
20091030cakephphandson 0220091030cakephphandson 02
20091030cakephphandson 02
 
Engine Yard Cloud
Engine Yard CloudEngine Yard Cloud
Engine Yard Cloud
 
20121225 php
20121225 php20121225 php
20121225 php
 
Cake Php キャッシュのやり方
Cake Php キャッシュのやり方Cake Php キャッシュのやり方
Cake Php キャッシュのやり方
 
20120507 zendform
20120507 zendform20120507 zendform
20120507 zendform
 
20090905 Cake Php
20090905 Cake Php20090905 Cake Php
20090905 Cake Php
 
【公式資料】第2回クラウド・マーケティング研究会オープニングセッション
【公式資料】第2回クラウド・マーケティング研究会オープニングセッション【公式資料】第2回クラウド・マーケティング研究会オープニングセッション
【公式資料】第2回クラウド・マーケティング研究会オープニングセッション
 
Apresentação mahara
Apresentação maharaApresentação mahara
Apresentação mahara
 

Ähnlich wie 20091030cakephphandson 01

PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理junichi anno
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterMasanori Oobayashi
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniterYuya Matsushima
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 miso- soup3
 
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~Yoshitaka Seo
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回Naoyuki Yamada
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門Yuji Nojima
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSAyumi Goto
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」fukuoka.ex
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUpKenichi Mukai
 
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみたYuki Takei
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますfukuoka.ex
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!Shohei Okada
 

Ähnlich wie 20091030cakephphandson 01 (20)

PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理PowerShellを使用したWindows Serverの管理
PowerShellを使用したWindows Serverの管理
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
 
はじめてのCodeIgniter
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniter
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
ASP.NET MVC 1.0
ASP.NET MVC 1.0ASP.NET MVC 1.0
ASP.NET MVC 1.0
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
 
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~
 
Cakephp
CakephpCakephp
Cakephp
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUp
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
 
SaCSS vol.24
SaCSS vol.24SaCSS vol.24
SaCSS vol.24
 
SaCSS vol. 24
SaCSS vol. 24SaCSS vol. 24
SaCSS vol. 24
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
 

Mehr von Yusuke Ando

ダイナミック広告の改善と拡大
ダイナミック広告の改善と拡大ダイナミック広告の改善と拡大
ダイナミック広告の改善と拡大Yusuke Ando
 
DevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニックDevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニックYusuke Ando
 
DevOpsを実現する為のChef実践テクニック Chef12対応版
DevOpsを実現する為のChef実践テクニック Chef12対応版DevOpsを実現する為のChef実践テクニック Chef12対応版
DevOpsを実現する為のChef実践テクニック Chef12対応版Yusuke Ando
 
Testing your app with Selenium on Travis CI
Testing your app with Selenium on Travis CITesting your app with Selenium on Travis CI
Testing your app with Selenium on Travis CIYusuke Ando
 
Travis CIで実現するPHPアプリの自動テスト
Travis CIで実現するPHPアプリの自動テストTravis CIで実現するPHPアプリの自動テスト
Travis CIで実現するPHPアプリの自動テストYusuke Ando
 
Shimokita.Unity Detonatorで爆発
Shimokita.Unity Detonatorで爆発Shimokita.Unity Detonatorで爆発
Shimokita.Unity Detonatorで爆発Yusuke Ando
 
Shimokita.Unity RigidbodyとColliderで衝突
Shimokita.Unity RigidbodyとColliderで衝突Shimokita.Unity RigidbodyとColliderで衝突
Shimokita.Unity RigidbodyとColliderで衝突Yusuke Ando
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Yusuke Ando
 
ゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツYusuke Ando
 
Travis CIですぐに始める継続的インテグレーション
Travis CIですぐに始める継続的インテグレーションTravis CIですぐに始める継続的インテグレーション
Travis CIですぐに始める継続的インテグレーションYusuke Ando
 
ブログやサイトのJekyllへの移行
ブログやサイトのJekyllへの移行ブログやサイトのJekyllへの移行
ブログやサイトのJekyllへの移行Yusuke Ando
 
PHPとTravis CIでブラウザテスト
PHPとTravis CIでブラウザテストPHPとTravis CIでブラウザテスト
PHPとTravis CIでブラウザテストYusuke Ando
 
Shimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆けるShimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆けるYusuke Ando
 
Engine Yardで作る NetCommons3のクラウド環境
Engine Yardで作る NetCommons3のクラウド環境Engine Yardで作る NetCommons3のクラウド環境
Engine Yardで作る NetCommons3のクラウド環境Yusuke Ando
 
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めようYusuke Ando
 
PHPの教室「foreachを極める」
PHPの教室「foreachを極める」PHPの教室「foreachを極める」
PHPの教室「foreachを極める」Yusuke Ando
 
90分間濃縮 PHPエラーの教室
90分間濃縮 PHPエラーの教室90分間濃縮 PHPエラーの教室
90分間濃縮 PHPエラーの教室Yusuke Ando
 

Mehr von Yusuke Ando (20)

ダイナミック広告の改善と拡大
ダイナミック広告の改善と拡大ダイナミック広告の改善と拡大
ダイナミック広告の改善と拡大
 
DevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニックDevOpsを実現するChef活用テクニック
DevOpsを実現するChef活用テクニック
 
DevOpsを実現する為のChef実践テクニック Chef12対応版
DevOpsを実現する為のChef実践テクニック Chef12対応版DevOpsを実現する為のChef実践テクニック Chef12対応版
DevOpsを実現する為のChef実践テクニック Chef12対応版
 
Testing your app with Selenium on Travis CI
Testing your app with Selenium on Travis CITesting your app with Selenium on Travis CI
Testing your app with Selenium on Travis CI
 
Travis CIで実現するPHPアプリの自動テスト
Travis CIで実現するPHPアプリの自動テストTravis CIで実現するPHPアプリの自動テスト
Travis CIで実現するPHPアプリの自動テスト
 
Shimokita.Unity Detonatorで爆発
Shimokita.Unity Detonatorで爆発Shimokita.Unity Detonatorで爆発
Shimokita.Unity Detonatorで爆発
 
Shimokita.Unity RigidbodyとColliderで衝突
Shimokita.Unity RigidbodyとColliderで衝突Shimokita.Unity RigidbodyとColliderで衝突
Shimokita.Unity RigidbodyとColliderで衝突
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門
 
ゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツゴールデンウィークに最適な学習コンテンツ
ゴールデンウィークに最適な学習コンテンツ
 
Travis CIですぐに始める継続的インテグレーション
Travis CIですぐに始める継続的インテグレーションTravis CIですぐに始める継続的インテグレーション
Travis CIですぐに始める継続的インテグレーション
 
ブログやサイトのJekyllへの移行
ブログやサイトのJekyllへの移行ブログやサイトのJekyllへの移行
ブログやサイトのJekyllへの移行
 
PHPとTravis CIでブラウザテスト
PHPとTravis CIでブラウザテストPHPとTravis CIでブラウザテスト
PHPとTravis CIでブラウザテスト
 
Shimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆けるShimokita.Unity パリの街をユニティちゃんが駆ける
Shimokita.Unity パリの街をユニティちゃんが駆ける
 
Dev opschef
Dev opschefDev opschef
Dev opschef
 
Paa s and oss
Paa s and ossPaa s and oss
Paa s and oss
 
New relic
New relicNew relic
New relic
 
Engine Yardで作る NetCommons3のクラウド環境
Engine Yardで作る NetCommons3のクラウド環境Engine Yardで作る NetCommons3のクラウド環境
Engine Yardで作る NetCommons3のクラウド環境
 
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
 
PHPの教室「foreachを極める」
PHPの教室「foreachを極める」PHPの教室「foreachを極める」
PHPの教室「foreachを極める」
 
90分間濃縮 PHPエラーの教室
90分間濃縮 PHPエラーの教室90分間濃縮 PHPエラーの教室
90分間濃縮 PHPエラーの教室
 

20091030cakephphandson 01