20151205フルスクラッチcms作成のノウハウ with laravel

Post on 23-Jan-2018

1.835 Views

Category:

Engineering

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

フルスクラッチCMS作成ノウハウWith Laravel

株式会社オールアバウト

吉田 拓実

(@y_takky2014)

1

自己紹介

吉田拓実(Yoshida Takumi)

@y_takky2014

https://twitter.com/y_takky2014

http://qiita.com/takky

趣味

Copyright 2015 All About,inc. 2

最近のお仕事

All About Japanの新規開発

Copyright 2015 All About,inc. 3

今回伝えたいこと

フルスクラッチでCMSを開発する際のメリット・デメリット

LaravelでCMSを開発する良さ

開発のノウハウ

Copyright 2015 All About,inc. 4

CMS何使ってます?

Copyright 2015 All About,inc. 5

汎用CMSを案件で使うメリット

権限管理・画像アップロード・プレビュー機能など基本的なものは揃っている

実装の必要がほぼない

Copyright 2015 All About,inc. 6

UPLOAD

PREVIEW

汎用CMSのデメリット

拡張しづらい

データの持ち方がCMS依存

要件が複雑だとコアに手を入れないと実現不可なことも・・・

CMS自体のアップデートやプラグインのアップデートができない

Copyright 2015 All About,inc. 7

汎用CMSの限界と今回の要件

CMSも多言語化する

外部ライターも執筆する。IDとして自社のログインサービスを使用する

Copyright 2015 All About,inc. 8

管理する要素記事

執筆者

テーマ(トップページのデザイン設定)

タグ

記事タイプが3種類まとめっぽいもの

1ページもの

旅行の日程みたいに日毎にページングするもの

Copyright 2015 All About,inc. 9

汎用CMSの限界と今回の要件

フルスクラッチを決断した理由

要件を満たせる汎用CMSがなかった

要件満たすように改修しても同じくらいの工数がかかりそうだった

幸いにもリソースに余裕があった

今後の拡張やメンテのことを考えて

汎用CMSでメディアの長期運営は難しい

一時期WordPressで実装していたことも・・

Copyright 2015 All About,inc. 10

CMSをフルスクラッチで作るメリット社内の細かい要望を叶えられる

Copyright 2015 All About,inc. 11

この機能では画像アップロードの時にトリミングをこっちではトリミング機能いらない

CMSをフルスクラッチで作るメリット社内の細かい要望を叶えられる

Copyright 2015 All About,inc. 12

この機能では画像アップロードの時にトリミングをこっちではトリミング機能いらない

編集中にミスってブラウザバックして編集内容なくなるからアラート出すようにして

記事データの活用が容易

Copyright 2015 All About,inc. 13

CMSをフルスクラッチで作るメリット

CMS

DB

Front

RSS

API

リリース後のメンテナンス機能拡張が容易

Copyright 2015 All About,inc. 14

CMSをフルスクラッチで作るメリット

新しく記事をまとめ直したページを作りたい

フルスクラッチのデメリット

各機能の実装が必要

コード量・開発工数は多い

Copyright 2015 All About,inc. 15

UPLOAD TRIMMING

PREVIEWROLE

ここまでのまとめ

Copyright 2015 All About,inc. 16

フルスクラッチ 汎用CMS

自分で機能の実装が必要 機能が用意されている

工数がかかる 少ない工数で実装可能

拡張の実装がしやすい 拡張の実装がしにくい

データの有効活用可能 CMSのデータ構造に影響される

要件を最大限に満たすことができる

CMSの機能内だとスムーズに実現できる

フルスクラッチ・汎用CMSのメリット・デメリットを考えて適切な選択を!

All About Japanのシステム構成(サーバサイド)

Copyright 2015 All About,inc. 17

Front

CMS

5.5

5.6

5Laravel

Laravelとは

シンプルで可読性の高いコードが書ける

モダンフレームワーク

最新バージョンは5.1.11

LTS(12/5現在)

Laravelリファレンス2016/1/8発売!出版社インプレス

Copyright 2015 All About,inc. 18

Laravel

多言語対応

Copyright 2015 All About,inc. 19

Laravelを用いるメリット

viewでの実装

言語ファイル

ファイルシステム

Copyright 2015 All About,inc. 20

Laravelを用いるメリット

ローカル ローカルストレージ

本番S3

リソースフルコントローラコマンドラインでひな形を自動生成

メソッド + パスで処理を切り分けることができる

Copyright 2015 All About,inc. 21

Laravelを用いるメリット

メソッド パス アクション

GET /article index

GET /article/create create

POST /article store

GET /article/{id} show

GET /article/{id}/edit edit

PUT/PATCH /article/{id} update

DELETE /article/{id} destriy

Validator

Copyright 2015 All About,inc. 22

Laravelを用いるメリット

integer 整数であること

email メールアドレスであること

image 画像ファイル(jpg,png,bmp・・・)であること

required 入力が存在するかバリデート

alpha_dash アルファベットと-,_であること

Eloquent ORM

LaravelのORM

便利メソッド・機能が複数用意されている

クエリスコープ

よく使う検索条件をメソッド化

Copyright 2015 All About,inc. 23

Laravelを用いるメリット

Composerでライブラリ管理

PHPの依存管理システム

ライブラリの導入が用意に

Packagist

Copyright 2015 All About,inc. 24

Laravelを用いるメリット

Ace Responsive Admin Template

Bootstrapをwrapしたテンプレート

デザインを知らなくてもかっこいいUIが作れる

Copyright 2015 All About,inc. 25

汎用CMSにあるこんな機能がバインドされている

画像ギャラリー

カラーピッカー

DateTimepicker

ドラック&ドロップでファイルアップロード

Copyright 2015 All About,inc. 26

Ace Responsive Admin Template

Ace Admin + Laravelでの開発ノウハウ

Select2

Select boxを使いやすくするjQueryライブラリ

検索機能がつくselect boxを作成可能

1行で実装可能

Copyright 2015 All About,inc. 27

画像処理

intervention/imageというライブラリを使う

Laravelに対応している画像処理のライブラリ

LaravelのRequestを元に画像ファイルの生成ができる

Copyright 2015 All About,inc. 28

Ace Admin + Laravelでの開発ノウハウ

crop($width,$height,$x,$y) 幅・高さ・座標でトリミング

resize($width,$height) 幅・高さにリサイズ

encode($format) 指定した形式に変更

filesize() 画像のファイルサイズを取得

text($text, $x, $y) 座標の位置にテキストを付与する

エンジニア視点から見たCMS

作成のメリット

いろいろな技術に触れられる

サーバーサイド、フロントエンド

フレームワークの使い方

HTML

Javascript/jQuery

ライブラリ

DBの読み書き・トランザクション

新卒・若手エンジニアの育成とかにもおすすめ

Copyright 2015 All About,inc. 29

まとめ

フルスクラッチで作るメリット

長期間のメディア運営のためにメンテナンス性・拡張性

細かい仕様に応えることが可能

データの有効活用

案件に応じた使い分けが必要

短期間で実装したい

CMSの機能で十分

というときは、汎用CMSを使うことも視野に

Copyright 2015 All About,inc. 30

オールアバウトでのCMS開発ノウハウまとめ

Laravel + Ace Responsive Admin Templateを使用

Laravelでデフォルトである機能がCMS構築の際に便利に使える

リソースフルコントローラ

Validation

ファイルシステム

Ace Responsive Admin Templateを使うことで

エンジニアでもかっこいいUIのCMS

Copyright 2015 All About,inc. 31

募集しています!!!

企画・編集の人と一緒に各種サービスや社内システム開発をしたいWEBエンジニア

オールアバウトのインフラを支えるインフラエンジニア

Copyright 2015 All About,inc. 32

アドベントカレンダーやってます

Copyright 2015 All About,inc. 33

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

Copyright 2015 All About,inc. 34

top related