Php Conference 2012 concrete5

5,085 views
4,996 views

Published on

Published in: Technology

Php Conference 2012 concrete5

  1. 1. CONCRETE5に見るMVCと拡張性の実装についてコンクリートファイブジャパン株式会社 菱川拓郎 Copyright Concrete5 Japan, Inc. All Rights Reserved.
  2. 2. このセッションの目的• 日本の concrete5 lover を増やしたい(海外には負けてられない)• PHPerのみなさま、concrete5楽しいですよ!Welcome! Copyright Concrete5 Japan, Inc. All Rights Reserved. 2
  3. 3. 自己紹介• コンクリートファイブジャパン株式会社 代表• なんちゃってPHPer 難しいことはできません…。• オブジェクト指向言語好き• フレームワーク使った仕事はしてません…。このフ レームワークと似てるよね!とかフレームワーク使い からみてここが面白い!などぜひぜひ教えてください Copyright Concrete5 Japan, Inc. All Rights Reserved. 3
  4. 4. CONCRETE5とは?• オープンソースCMS• ページを見たまま編集、直感的な操作 Copyright Concrete5 Japan, Inc. All Rights Reserved. 4
  5. 5. マーケティングのためのCMS でも、ギーク向けに開発 Copyright Concrete5 Japan, Inc. All Rights Reserved. 5
  6. 6. 世界のCONCRETE5ユーザー なんかみんな楽しそうです Copyright Concrete5 Japan, Inc. All Rights Reserved. 6
  7. 7. 日本でもユーザー増加中! Copyright Concrete5 Japan, Inc. All Rights Reserved. 7
  8. 8. CONCRETE5の機能• グループや属性でユーザーを管理• 超詳細な権限設定が可能• コンテンツのスケジュール公開• ページ単位でデザインを柔軟に変更できる• そのほか内部キャッシュや検索インデックスなど、め んどくさい実装はコアにおまかせ! Copyright Concrete5 Japan, Inc. All Rights Reserved. 8
  9. 9. さて、CMSです Copyright Concrete5 Japan, Inc. All Rights Reserved. 9
  10. 10. 正直、自分には関係ねーな… と思ってませんか? Copyright Concrete5 Japan, Inc. All Rights Reserved. 10
  11. 11. さまよえるニーズの宝庫• 誰にでも使えるかんたん操作、だからこそ、 非プログラマ、非IT系のユーザーがとても多い• 「こういう機能がほしい、あったらすぐ使う!」• 「誰か作ってほしいな∼ |д゚)チラッ」• という声を勉強会でたくさんいただきます Copyright Concrete5 Japan, Inc. All Rights Reserved. 11
  12. 12. ということは…Copyright Concrete5 Japan, Inc. All Rights Reserved. 12
  13. 13. concrete5でアプリ開発して神になろうぜ! Copyright Concrete5 Japan, Inc. All Rights Reserved. 13
  14. 14. まず、CONCRETE5の特長 Copyright Concrete5 Japan, Inc. All Rights Reserved. 14
  15. 15. かんたんに拡張できる柔軟性• ただWYSIWYGが動くだけのCMSじゃありません• ページの中に「ブロック」を積み上げていく編集方式• どんな「ブロック」でもワンクリックで入っちゃう• アイディア次第でどんなものでも… Copyright Concrete5 Japan, Inc. All Rights Reserved. 15
  16. 16. CONCRETE5日本語 公式サイト Copyright Concrete5 Japan, Inc. All Rights Reserved. 16
  17. 17. CONCRETE5日本語 公式サイト 【編集モード】 全部ブロック! Copyright Concrete5 Japan, Inc. All Rights Reserved. 17
  18. 18. 作ったものを使ってもらえる• 公式のマーケットプ レイスで配布・販売• 管理画面からワンク リックインストー ル、購入も管理画面 から• 75%が開発者の収益 Copyright Concrete5 Japan, Inc. All Rights Reserved. 18
  19. 19. MVC、フレームワークを意識した設計• 開発ドキュメントが 充実(英語だけど…)• 柔軟なオーバーライ ド機構• コアクラスの継承で 独自機能を追加• APIは検索可能 Copyright Concrete5 Japan, Inc. All Rights Reserved. 19
  20. 20. つまり、concrete5はデベロッパー大歓迎仕様 Copyright Concrete5 Japan, Inc. All Rights Reserved. 20
  21. 21. では、CONCRETE5の設計コンセプトをご紹介 Copyright Concrete5 Japan, Inc. All Rights Reserved. 21
  22. 22. ページ• 記事?投稿?アーカイブ?フロントページ?• concrete5の場合、ページはページ• ページつったらページ• ページはユニークなURLと、公開日、オーナー情報、 メタ情報、タグなどの属性を持つが、ページの中身と は切り離されている Copyright Concrete5 Japan, Inc. All Rights Reserved. 22
  23. 23. エリア• ブロックを挿入するための領域• ページにはテンプレートで自由な位置に好きなだけエ リアを配置できる $a = new Area(Sidebar); $a->display($c);• メニューから各種操作が可能 Copyright Concrete5 Japan, Inc. All Rights Reserved. 23
  24. 24. ブロック• ページに配置するコンテンツ• テキスト、画像ギャラリー、コメント欄、etc...• ブロック単位でVとCを持つ• 「テンプレートタグ」は無いよ! (覚えなくてよくって助かる)• メニューから各種操作が可能 Copyright Concrete5 Japan, Inc. All Rights Reserved. 24
  25. 25. ブロックは簡単に作れる• データベース構造はXMLで指定、ブロックのインス トール時にテーブルを自動作成• ブロックごとに編集画面を持ち、ブロックのコント ローラーが値をDBに保存、ビューへ渡す• 親クラスのメソッドを継承してカスタマイズも可能• templatesディレクトリーに置いたPHPが追加のビュー (カスタムテンプレート)として自動認識される Copyright Concrete5 Japan, Inc. All Rights Reserved. 25
  26. 26. シングルページ• 固定の機能を持つページ。主に管理画面側で使われる• [url] /login/do_login/ [post] uName: hogehoge ↓ /concrete/controllers/login.php class LoginController extends Controller { public function do_login() { $this->post(uName) } } Copyright Concrete5 Japan, Inc. All Rights Reserved. 26
  27. 27. モデル• concrete5で扱うもの• 権限、エリア、属性、ブロック、ファイル、ユー ザー、ページ、ページリスト、ジョブ etc. Copyright Concrete5 Japan, Inc. All Rights Reserved. 27
  28. 28. ヘルパー• 共通の機能のための小規模なライブラリー• HTML, Form, Validation etc. $form = Loader::helper(form); print $form->select(favoriteFruit, array(p => Pears, a => Apples, o => Oranges), a); Copyright Concrete5 Japan, Inc. All Rights Reserved. 28
  29. 29. ライブラリー• 関連する一連の機能を提供する• Backup, Cache, Events, Database, FileImporter etc.• Zend, ADODB などを外部ライブラリーとして利用 Copyright Concrete5 Japan, Inc. All Rights Reserved. 29
  30. 30. TWITTER BOOTSTRAP• UIに全面的に Bootstrap, from Twitter を採用• Interfaceヘルパーを経由して呼び出し• デザインに悩まなくていい• ユーザーも各デベロッパーの機能の操作に統一感が あってうれしい Copyright Concrete5 Japan, Inc. All Rights Reserved. 30
  31. 31. オーバーライド• コア領域(concreteディレクトリー)のファイル /concrete/js/jquery.js• ユーザー領域(ルートディレクトリー)のファイルで 上書き可能 /js/jquery.js Copyright Concrete5 Japan, Inc. All Rights Reserved. 31
  32. 32. 最後にCopyright Concrete5 Japan, Inc. All Rights Reserved. 32
  33. 33. コミュニティメンバー大募集中!• コミュニティメンバーは随時絶賛大募集中です。コア の翻訳、ドキュメントの翻訳、concrete5コアパッ ケージのマルチバイト対応• PHPerのconcrete5エバンジェリスト募集してます! (ローカライズチームの人間が多いです。デザイナー も募集中) Copyright Concrete5 Japan, Inc. All Rights Reserved. 33
  34. 34. パートナーも募集中!• なんか開発の仕事が増えてます。concrete5で開発 やってみませんか? Copyright Concrete5 Japan, Inc. All Rights Reserved. 34
  35. 35. THANKS!concrete5-japan.org concrete5.co.jp Copyright Concrete5 Japan, Inc. All Rights Reserved. 35

×