SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Samurai Frameworkに関して
開発者紹介
開発者紹介 名前: 木内智史之介 経歴: 北諏訪小学校 -> 引っ越し -> 荒幡小学校 山口中学校 所沢高等学校 東京マルチメディア専門学校 株式会社ジェイケン(現在はドリコムに吸収合併されました) 独立 -> 株式会社BEFOOL
株式会社BEFOOL紹介 http://befool.co.jp/ 資本金: 5万
会社紹介② 代表からのメッセージ
Samurai Frameworkの紹介 本題の前に
Samurai Frameworkってなに? PHPのフルスタックフレームワークです。 Mapleから派生しました。 Mapleって? 4~5年前くらいにEthna、symfonyと並んで紹介されていたフレームワーク 2年前くらいにMaple4を作ろうという流れに その際にコミッタになりました Maple4は残念ながら開発は事実上の停止状態にあります Mapleの基本的な理念を引き継いでいます Maple4開発時の議論に上がった内容を、(主にDIContainer部分に関して)取り入れています。 DIContainerを軸に動作します O/RマッパーActiveGatewayを備えています PHPSpecを利用したしたテスト機構を備えています
Samurai Framework WEBサイト http://samurai-fw.org/   ( ゚д゚)       _(__つ/ ̄ ̄ ̄/_   \/    /      ̄ ̄ ̄ 
Samurai Framework WEBサイト   ( ゚д゚)       _(__つ/ ̄ ̄ ̄/_   \/    /      ̄ ̄ ̄    ( ゚д゚ ) _(__つ/ ̄ ̄ ̄/_   \/    /      ̄ ̄ ̄    ( ゚д゚)       _(__つ/ ̄ ̄ ̄/_   \/    /      ̄ ̄ ̄    ( ゚д゚ ) _(__つ/ ̄ ̄ ̄/_   \/    /      ̄ ̄ ̄ 
Samurai Framework WEBサイト (´;ω;`)ブワッ よろしくおねがいいたします
Samurai Frameworkの処理概要に関して 今日の本題
処理の全体像 Controller ActionChain FilterChain
FilterChainの流れ クライアント(ブラウザ) Filter1 Filter2 Filter3 prefilter postfilter Filter4 Filter5 Action
Filterの種類 Convert (リクエストパラメータの変換) Validate (入力チェック) Auth (認証) Token (リクエストの簡易チェック) DIContainer (DIContainer初期化) ActiveGateway (ActiveGateway利用準備) View (テンプレートの表示など) Debug (デバッグ情報の表示) などなど、Samurai Frameworkでは多くの処理をFilterで実装しています。
Debugフィルター紹介 Debug情報を表示します
ディレクトリ構成 bin/ component/ action/ filter/ config/ samurai/ activegateway/ routing/ library/ locale/ log/ migrate/ db/ skeleton/ spec/ temp/ template/ www/
他フレームワークと大きく違う点 DIContainer S2Container.PHP 他には…? Actionが固有のクラス
Samurai Frameworkでの開発の流れ
インストール方法 pearコマンド利用します # pear channel-discover pear.samurai-fw.org # pear install –f samurai/Samurai # samurai Usage:     samurai [option] [command] [command-option] [args...] Options:     --version, -[vV] Print version and exit successfully.     --help,    -[hH] Print this help and exit successfully. Commands:     add-project      Add Project.     add-application  Add Application.     add-action       Add Action.     add-template     Add Template.
プログラミングの流れ add-projectする while(1){ add-specする add-componentする samurai.diconに追加する 失敗 / 成功 } while(1){ add-actionする }
閑話:PHPSpecに関して Samurai FrameworkではSpecのRunnerとしてPHPSpecを採用しているのですが… PHPSpecって開発停止している…よね…? なぜ採用したし… PHPSpecのようなBDDフレームワークってほかにないですかー?
DIContainerに関して
DIContainerって? DependencyInjection(依存性注入) クラスは多くの場合他クラスに依存するもの その依存性の解決を個々のクラスに任せるのは大変 初期化の方法が変わればnewしてる箇所すべてに影響がでる クラス名の変更が容易ではない モッククラスを適当に用意しておくことがしづらい クラス間の依存関係が見えづらい DIContainerが解決! SomeManager:     class: Mock_Some_Manager function initMethod() {    $this->SomeComponent = new SomeComponent();    $module = $this->loadModule(‘some’); } SomeManager:     class: Some_Manager
DIContainerの書き方 samurai.dicon foo/Manager.class.php FooManager:    class: Foo_Manager BarManager:    class: Bar_Manager ZooManager:    class: Zoo_Manager class Foo_Manager {    public $BarManager;    public $ZooManager; } 自動的に差し込んでくれる
いくつかのクラス初期化方法をサポート 通常 setter FooManager:    class: Foo_Manager FooManager:    class: Foo_Manager    setter:        db: $DB 毎回新しいインスタンスを取得 初期化メソッド FooManager:    class: Foo_Manager    instance: prototype FooManager:    class: Foo_Manager    initMethod: init    args: [$DB] コンストラクタに引数 FooManager:    class: Foo_Manager    args: [1, 2, $BarManager]
今後の展開
今後に関して 国際化対応 携帯関連をサポート 絵文字の相互変換など SPECランナーをラップ ActiveGatewayの名前を考える
ライバル cakePHP なめんなこら! symfony やんのかこら! ZendFramework 腰抜かしてやんよ! CodeIgniter おらおらー Ethna おらおらー
ご静聴ありがとうございました。

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (8)

if-up 2019 | A2. クラウドにつながり始めたハードウェア
if-up 2019 | A2. クラウドにつながり始めたハードウェアif-up 2019 | A2. クラウドにつながり始めたハードウェア
if-up 2019 | A2. クラウドにつながり始めたハードウェア
 
東北での導入事例にみるAWS活用方法
東北での導入事例にみるAWS活用方法東北での導入事例にみるAWS活用方法
東北での導入事例にみるAWS活用方法
 
今、ベトナムが熱い! ベトナムにおけるスマフォアプリ オフショア開発の最前線
今、ベトナムが熱い! ベトナムにおけるスマフォアプリ オフショア開発の最前線今、ベトナムが熱い! ベトナムにおけるスマフォアプリ オフショア開発の最前線
今、ベトナムが熱い! ベトナムにおけるスマフォアプリ オフショア開発の最前線
 
クラウドとコミュニティで起きた田舎の会社のゲームチェンジ
クラウドとコミュニティで起きた田舎の会社のゲームチェンジクラウドとコミュニティで起きた田舎の会社のゲームチェンジ
クラウドとコミュニティで起きた田舎の会社のゲームチェンジ
 
CS Young Meetup Vol.9(さくらインターネット株式会社 大西さん)
CS Young Meetup Vol.9(さくらインターネット株式会社 大西さん)CS Young Meetup Vol.9(さくらインターネット株式会社 大西さん)
CS Young Meetup Vol.9(さくらインターネット株式会社 大西さん)
 
ICTSC_DMM_recruit
ICTSC_DMM_recruitICTSC_DMM_recruit
ICTSC_DMM_recruit
 
July Tech Festa 2014 大規模エンターテイメントサイトを支える技術
July Tech Festa 2014 大規模エンターテイメントサイトを支える技術July Tech Festa 2014 大規模エンターテイメントサイトを支える技術
July Tech Festa 2014 大規模エンターテイメントサイトを支える技術
 
20201008 AWS独自設計推論チップInferentiaとInf1インスタンス
20201008 AWS独自設計推論チップInferentiaとInf1インスタンス20201008 AWS独自設計推論チップInferentiaとInf1インスタンス
20201008 AWS独自設計推論チップInferentiaとInf1インスタンス
 

Ähnlich wie Samurai Framework 紹介 (6)

Jawsfeta tohoku lt_20140906
Jawsfeta tohoku lt_20140906Jawsfeta tohoku lt_20140906
Jawsfeta tohoku lt_20140906
 
受託開発のPhalcon
受託開発のPhalcon受託開発のPhalcon
受託開発のPhalcon
 
Symfony事例紹介
Symfony事例紹介Symfony事例紹介
Symfony事例紹介
 
Lightning Knowledgeをちょっとだけ触ってみた
Lightning Knowledgeをちょっとだけ触ってみたLightning Knowledgeをちょっとだけ触ってみた
Lightning Knowledgeをちょっとだけ触ってみた
 
Java→phpエンジニアに転向した話
Java→phpエンジニアに転向した話Java→phpエンジニアに転向した話
Java→phpエンジニアに転向した話
 
Salesforceに関わったことでキャリアが変わった話(JapanDreamin' )
Salesforceに関わったことでキャリアが変わった話(JapanDreamin' )Salesforceに関わったことでキャリアが変わった話(JapanDreamin' )
Salesforceに関わったことでキャリアが変わった話(JapanDreamin' )
 

Kürzlich hochgeladen

Kürzlich hochgeladen (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

Samurai Framework 紹介