[超初心者向け無料セミナー]...

23
1時間でまるわかり! CakePHP概説&WordPress応用事例 2016214日、227TECH GARDEN SCHOOL 1

Upload: techgardenschool

Post on 21-Jan-2018

1.829 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

1時間でまるわかり!

CakePHP概説&WordPress応用事例

2016年2月14日、2月27日

TECH GARDEN SCHOOL

1

Page 2: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

目的

•フレームワークとは何か、その利点がわかる

• PHPの主要なWebフレームワークや、その1つであるCakePHPの特徴がわかる

• CakePHPとWordPressの違い、その組み合わせの考え方がわかる

2

Page 3: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

フレームワークとは何か

•アプリケーションの土台

•プログラム言語(例:PHP)の上で動作させ、特定の種類のアプリケーション(例:Webサービス)を開発するために必要な構造や機能を補完するもの

プログラム言語(例:PHP)

フレームワーク(例:CakePHP)

Webアプリ(サイト / サービス)Web以外のアプリ

フレームワークは必須ではない

3

Page 4: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

フレームワークを使用しない場合レイアウト

(全画面に同じ内容を書く)

ビュービュービュー

モデルモデル

(DB接続・切断も書く)

• 1つのファイルに様々な要素がごちゃ混ぜ• 並べ替え機能が必要になったら?• ページめくり機能が必要になったら?

4

Page 5: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

フレームワークを使用した場合ModelView

Controller

• 各ファイルの役割が明確• 誰がどの画面を作るときでも同じ構成• レイアウトは共通で使用するものが1つある

並べ替えとページめくりは実装済並べ替えとページめくりは実装済

SQLを書かなくても良い

5

Page 6: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

なぜフレームワークを使うのか

•設計・開発のベストプラクティスを活用できる• フレームワークには、主流の設計・開発手法、多くの開発者の経験が組み込まれているため、初心者が使ってもそれらのベストプラクティスを活用できる

• 構造の一貫性やセキュリティ対策など初心者が忘れがちなポイントをフレームワークがフォローしてくれる

•複数メンバーで開発する際に、設計・開発手法を標準化できる• フレームワークでは機能分担やクラス名・変数名などの命名が規則化されているものが多く、誰が見ても見通しの良いコードになる

•使い方を覚えれば、生産性が向上する• フレームワークを使わなければ、独自開発が必要になってしまう

6

Page 7: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

MVCモデル~Webアプリ開発における設計のベストプラクティス

View

画面の表示

画面内で処理する機能の実装(JavaScript)

Controller

ビジネスロジックの実行(制御)

次画面で使用するデータの準備

Model

データベースからのデータ取得や保存

データの妥当性チェックや計算などのビジネスロジック

7

Page 8: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

PHPのフレームワークのご紹介と特徴

• MVCモデルを採用するフレームワーク→この後、詳細をご説明します!• CakePHP

• Symfony

• Zend Framework

• WordPress• WordPressもある意味でフレームワークです。テーマやプラグインによって独自のプログラム(機能)を組み込むことができますし、カスタム投稿タイプによってブログ記事以外の情報を管理することも可能です。様々な情報を表示するようなサイトに向きます。

8

Page 9: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

MVCモデルを採用するフレームワーク

フレームワーク MVCモデル 自動生成 規模適性 動作速度

CakePHP 採用 あり

データベース定義からスケルトンを作成可能

小~中規模向け 普通

Symfony 採用 あり

データベース定義からスケルトンを作成可能

大規模向け

プロジェクト・アプリケーション・モジュールの3層で大規模サイトを構成

遅い

拡張性のためにSymfony自体が大きな構造になっている

Zend Framework 採用

MVCの使用は必須ではない

なし 小~中規模向け

大規模サイトでZend

Frameworkの一部機能だけを使用することも可能

速い

独立性の高いコンポーネントの集合体のため

軽い

<参考>PHPプロ! http://www.phppro.jp/article/framework/comparison.php

9

Page 10: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

CakePHPでできること

• MVCモデルに準拠したWebアプリ開発

•データベース定義を元にしたスケルトンの自動生成• データの追加・参照・変更・削除を行うアプリが自動生成できる

• SQLを書かなくてもデータベースアクセスが可能

•ルールを記述するだけで入力チェックの開発が可能

•セキュリティ対策(XSS / CSRF / フォーム改ざん)

•プラグインによる機能拡張

•柔軟なビュー構造• レイアウトやテンプレートの再利用が可能

10

Page 11: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

PHP(ベタ書き)との比較

PHP(ベタ書き) CakePHP

MVC準拠のWeb開発 1画面を1ファイルで書くのが前提 MVCモデルの使用が前提

スケルトン生成 なし あり(Bakeコマンド)

データベースアクセス SQLを書く Modelの使用でSQL不要(SQLを書くことも出来る)

入力チェック 画面ごとにプログラムを書く(チェックを共通化することはできる)

Modelに定義するのみで可能(画面ごとの定義は不要)

セキュリティ対策 画面ごと、SQLの実行ごとにセキュリティ対策を考慮したプログラムを書く

XSS / CSRF /フォーム改ざんの対策はCakePHPで考慮されている

機能拡張 PEAR(ライブラリリポジトリ)等からインストール

CakePHP独自のプラグイン機能(PEARライブラリ等の使用も可能)

ビューの再利用 require / includeで再利用するPHPファイルを読み込む

画面全体はレイアウト、画面の一部はエレメントで、再利用可能

11

Page 12: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

CakePHPとWordPress

CakePHP

• Webアプリフレームワーク

•柔軟な画面設計・遷移

•柔軟なデータベース設計

•柔軟なユーザ管理

•情報配信以外の目的ならCakePHPを使いたい

WordPress

•コンテンツ管理システム

•情報配信に向いた画面

•固定されたデータベース設計

•情報配信に向いたユーザ管理

•情報配信サイトの開発ならば、CakePHPより生産性が高い• 必ずしもブログである必要はなく、柔軟なカスタマイズ可能

12

Page 13: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

CakePHPとWordPressの組み合わせ事例

CakePHPとWordPressを組み合わせて使うために、以下の2つの方法があります。

①WordPress meets CakePHP• WordPressサイトにCakePHPを組み込む

② CakePHP meets WordPress• CakePHPサイト(Webアプリ)にWordPressを組み込む

13

Page 14: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

①WordPress meets CakePHP

WordPressで出来たサイト

• 企業サイト

• キャンペーンサイト

独自の機能を組み込む

• 自由な画面遷移が必要なWebアプリ

• 商品データベースなどの管理

• 他サイト等からの記事の連携

14

Page 15: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

② CakePHP meets WordPress

CakePHPで開発した独自のWebサービス

ブログ機能を組み込む

• PR目的のブログ(開発者ブログなど)

• メディアギャラリー

• 管理画面で記事を管理するツールとして

15

Page 16: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

WordPressの記事をCakePHPで参照する①WordPress meets CakePHPの例

16

Page 17: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

完成形

WordPress CakePHP

WordPressのデータベースをCakePHPで参照(追加・更新・削除可)できる

17

Page 18: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

database.php (CakePHP)

CakePHPからWordPressの

データベースを参照可能にする

18

Page 19: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

MVC (CakePHP)

Model

View

Controller

これらのプログラムは、CakePHPのbakeコマンドで

自動生成可能

19

Page 20: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

CakePHPアプリにWordPressブログを組み込む② CakePHP meets WordPress の例

20

Page 21: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

WordPressの配置

CakePHPのwebrootにWordPressを配置

(ディレクトリ名をblogに変更)

21

Page 22: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

.htaccessを編集する

編集内容はCakePHPのイン

ストールパスによって異なります

22

Page 23: [超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例

WordPressのインストール

見慣れたWordPressのインストール画面が表示される

23