Upload
fumito-mizuno
View
516
Download
1
Embed Size (px)
Citation preview
開発の経緯
● コーポレイトサイト http://bioaster.org/ ○ 制作の現場から生まれたプロジェクト○ 多言語対応が必要だが Drupal だと大げさ、という規模
● 本体+標準アプリケーションで要件を満たす○ プラグイン/モジュール/アドオンなどを前提としない○ 長期的に安定して運用しやすい
2
開発主体・ライセンス
● フランスの会社 Novius Agency が中心○ github.com で公開し、世界からコミットを受け付ける
● オープンソース○ 互恵性の強いライセンス (AGPL ver.3 or later)○ コアへの貢献を歓迎する (コードを分散させない)
3
動作要件
● 自分のサーバーにインストールする場合○ PHP5.3以降
○ MySQL 5以降
○ サーバーに非公開領域ありを推奨
● 開発元提供のクラウドサービスがある○ 申し込み画面がフランス語、決済がユーロ
4
コンテンツを管理する
5
コンテンツ毎に、管理画面を作成
● コンテンツに応じた項目、入力方法を提供○ データの構造をきちんと作る○ 入力ミス防止、役割分担
● 柔軟な出力方法、再利用性○ 出力方法は別途設定する○ JSONやXMLで出力可能○ 外部システムと連携しやすい
6
デモ用に作ったサイト
飲食店を想定
- 飲食メニュー一覧
- ブログ (新メニューを紹介することもある) - 問い合わせ
7
コンテンツ毎に、管理画面を作成
商品メニュー8
コンテンツ毎に、管理画面を作成
問い合わせフォーム9
コンテンツ毎に、管理画面を作成
メディア
10
コンテンツ管理に重点を置く
ウェブページ
コンテンツと見た目を分離しておくことで、コンテンツの管理がしやすい
11
HTMLで出力
メニュー一覧: 全て表示 ブログ記事: 新メニューのみ
カレーの画像はwikipedia から。 cc-by-sa http://ja.
wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%
AB:Curry_and_rice.jpg
12
ウェブサイトを作った後、更新作業がある
13
HTMLで出力
メニュー一覧: 全て表示 ブログ記事: 新メニューのみ
カレーの画像はwikipedia から。 cc-by-sa http://ja.
wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%
AB:Curry_and_rice.jpg
14
HTMLで出力
メニュー一覧: 全て表示 ブログ記事: 新メニューのみ
カレーの画像はwikipedia から。 cc-by-sa http://ja.
wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%
AB:Curry_and_rice.jpg
「価格の改定」「販売中止や終了」など運用途中で変更する場合
↓一箇所変えれば全部に反映
作業の工数減少、変更漏れを防ぐ
15
HTMLに出力するだけ?
16
様々なコンテンツの操作方法の例
● JSON で出力する
● XML で出力する
● コマンドラインで投稿、データ取得
● 外部サービス (チャットワーク) にデータを送る
17
JSON, XML の出力
社内のシステム
JSONやXML等で出力することで、コンテンツを様々な場所で活用できる
ウェブページ
外部サービス
18
JSON で出力
19
XML で出力
20
コマンドラインでの操作
社内のシステム
社内のシステムが既にある場合に活用するCMSの不具合は影響が大きいので、処理を少なくする
ウェブページ
外部サービス
21
コマンドラインでの操作
コンテンツを作成して保存22
コマンドラインでの操作
データを取得して、JSON や XML で出力
23
外部サービス連携の例
社内のシステム
チャットワークと連携する例を紹介
ウェブページ
外部サービス
24
外部サービス連携: チャットワーク
25
外部サービス連携: チャットワーク
ログインアラート
問い合わせ受信通知
データを送信
26
見たまま編集できる
CMS が便利では?
27
「見たまま編集」ではない
「ウェブページの更新」だけを考えると手間
↓再利用しやすい形でコンテンツを作成し、
様々な媒体を一括更新すれば、
全体の手間は軽減され、作業ミスも防げる
28
これらの機能は、
Novius OSだけでなく、
他のCMSでも可能では?
29
FuelPHPフレームワークを採用
● JSON/XML 出力○ FuelPHP の Rest コントローラ機能
● コマンドライン操作○ FuelPHP の oil 機能 + OR マッパー
● チャットワーク連携○ FuelPHP のパッケージを利用
30
フレームワーク採用のメリット
● 開発の効率性○ 車輪の再発明をしない(よくある機能はFuelPHPで実装)○ FuelPHPの環境設定、デバッグ機能などを活用
● 学習・運用コスト○ FuelPHPの他のプログラムとパッケージ共有
○ 別のシステムと連携
○ FuelPHPの書籍で学習できる
31
FuelPHPを学ぶ書籍
● 改訂 FuelPHP入門 (早川聖司)● 初めてのフレームワークとしてのFuelPHP 改訂
版 (鈴木憲治)● Learning FuelPHP for Effective PHP
Development (Ross Tweedie)
32
Novius OS が苦手なものは?
33
Novius OS が苦手なもの
ウェブページを単位とする検索
コンテンツのまとまりごとに、別テーブルで管理
↓ 「メニュー」の中から検索は簡単だが、
「ページ上の表示内容」の検索は面倒
34
ページ
ブログ
商品メニュー
35
ページ
ブログ
商品メニュー
全体を検索しようとすると、「ページ」「ブログ」「商品メニュー」のデータを検索しなければならない
36
まとめ Novius OS
● コーポレイトサイト向け○ 実案件からスタートした、実用的なシステム
● コンテンツの再利用性○ コンテンツごとの情報設計○ JSON, XMLなどの汎用的なフォーマット
● 標準的な機能を利用する○ CMS本体の充実、コードの共有○ ベースとなるフレームワークFuelPHPの機能を活用
37