質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

3回答

3870閲覧

PHPでサービスを立ち上げる際に、wordpressのテンプレートをベースに作るべきか、CakePHPなどのフレームワークを使うべきなのかがわかりません。(サービスの規模や状況にもよりますが、次の要)

qaz3330

総合スコア113

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

5クリップ

投稿2016/08/07 17:09

wordpressには、無料のテンプレートでも、いろいろと機能がつまったものが用意されております。

そのため、新規サービス立ち上げの時はwordpressのテンプレートを用いて開発するのもありだなと思いました。

(今までは、Ruby on Rails や Python などでwebサービスを作っておりました。
そのため、PHPやwordpress全般はあまり経験がありません。その点予めご了承下さい。)

前提

・PHPで実装
・新規でサービスを立ち上げる場合
・いわゆるスタートアップ企業がアジャイル開発で、週ペースで細かな機能追加をしていくことを想定
・最初の仕様を満たすwordpressのテーマが見つかった

上記は抽象的なのと、サービスの規模や追加する機能の数などにもよるかと思いますが、一つの目標に上場に向けて動くというのがありますため、ユーザー数は100万人規模のBtoCサイトを作るということを前提にさせてください。

本題

そのような前提の上で、後々の機能追加のコストなどを考えたときに
wordpressで運用した方がいいのか、はたまたPHPのフレームワークCakePHP等で最初から実装をすすめるのか
どちらがいいのかが私の中で切り分けができておりません。

PHPで実装することが前提なのであれば、
最初からミニマムな機能が準備されているwordpressを前提にモックをつくり、
その上に機能を追加していくのが、ありなのかなと思っております。

一方で、わからないのは、wordpressにおいて、次のような問題が発生するかどうかです。

・ CakePHPなどのフレームワークが使えない
・ Wordpressを使っていることによる実装できない機能が発生する※1

※1は私も想定ができないので、もしそういう経験があったという方はご共有して頂けますと今後のリスク回避のための参考として大変重宝できます。

これらの問題が起こらないようでしたら、Wordpressを前提に今後、複数のサービスを作ってみようかと思っております。

一つの例として

たとえばteratailのようなサービスを開発するにあたり、wordpressのテンプレートが存在しており、かつ、それにより最低限の機能が用意されていた場合などを例としてあげさせて頂きます。

tererailさんもおそらく細かな機能追加などを積極的におこなっているため、例としていいかなと思いました。

最後に

これからサービス開発をすすめるという状況のため、全体的に抽象的で申し訳ありません。
一般論や経験談などをもとにご回答頂けますと幸いです。

宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

上記は抽象的なのと、サービスの規模や追加する機能の数などにもよるかと思いますが、一つの目標に上場に向けて動くというのがありますため、ユーザー数は100万人規模のBtoCサイトを作るということを前提にさせてください。

古今東西のWebフレームワークのベンチマーク一覧です。
CakePHPはFuelとSymfonyの中間くらいなので、カリカリにチューニングを施しても同条件のマシンでは秒間4kリクエスト程度しか捌けません。
WordPressも同様の重厚なフレームワークなので、同程度のリクエスト数しか捌けないでしょう。

もし100万ユーザー規模のサイトに膨れ上がればの話ですが、
サーバーのリソースがカツカツになったタイミングで一度、ScalaやElixir等の高速な言語に移住を考えるべきでしょう。
(別にインスタンスのスケールアップという選択肢もあるので、金さえあればいくらでも誤魔化しは効きますが)
Chatworkというサービスでは現にPHP→Scalaに置き換えています。


判断の材料として、ApacheとPHPの関係に関して紹介します。

PHPにはWebサーバーの機能が引っ付いていますが、公式が使うなとアナウンスしています。
じゃあどうやってWebサーバーを実現しているかというと、Apacheという静的ファイルを配信するWebサーバーの1モジュールとして動作します。

基本的にPHPファイルのURIがリクエストされた場合、
ApacheはPHPのモジュールに処理を依頼することで、即席のHTMLを生成・加工してクライアントに返します。

Apacheは設定ファイルに従い、このURLのリクエストはこのPHPファイル、
それ以外のURLのリクエストはそちらのPHPファイルという風に割り振る事が簡単に行なえます。

CakePHPでは公開領域にindex.phpファイルのみ配置し、
Apacheの設定ファイルを書き換える事で、http://hoge.com/users/3がリクエストされた場合http://hoge.com/index.php?path="/users/3"であったかのようにリクエストを編集して動作します。


今後の展開次第になるでしょうけど、現状要件を満たしているという話なのでWordPressのみで十分でしょう。
スタートアップ企業との事なので、早くモックアップを作ってサービスをローンチすることが最優先です。

どうしてもWordPressで立ちいかなくなった場合、
例えば/api/パス配下のみをCakePHPで実装して、
WordPress内のページからAjaxでCakePHPで作った追加機能にアクセスして情報を動的に取得する選択肢があります。
(ただし、CakePHPでWordPress流儀の認証機能を実現することになるので、難易度はそれなりに高いでしょう)

しかしWordPressはブログを作る為のツールです。
RPGツクールでシューティングゲームを作るみたいな原型をとどめていないレベルの改修が必要になった場合、
改めて別案件としてCakePHP等のフレームワークを利用して一から開発することになると思います。

とは言え、前提がスタートアップ企業の自社開発とのことなので、
コミュニケーションのコストは最小限で、WordPressを捨ててCakePHPで実装し直すというコストもそんなに高くないはずです。
勉強がてら、とりあえず興味ある方でスタートしてみてはいかがでしょうか?

投稿2016/08/08 02:14

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

teratailのようなサイト…ということならwordpressよりもcakeなどのフレームワークを使ったほうがいいような気がします。
wordpressは比較的簡単に構築できる反面、自由にカスタマイズできるとはいいがたいので、いろいろやろうとしたら逆に工数がかかってしまうかもしれませんし、余計な機能も多いので、大規模サイトには不向きだと思います。
RailsができるならRailsでいいような気がしますがが…
cakeとかならwordpressとの共存もしやすいと思います。

私の場合、本体部分をcakeで、その他の半固定なコンテンツ部分(例えば会社案内のページとか)のCMSをwordpressで構築して、開発工数を減らすということをよくやっています。

投稿2016/08/09 14:36

CodeLab

総合スコア1939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

抽象的なご要望なので、なんとも言えませんが、teratailのようなサイトをつくるなら、最初からプラグインがたくさんあるwordpressの方がよい気がします。

ただ、質問者さんはruby on railsの経験があるということなので、フレームワークの使い方を基本的にマスターしているという前提で話すと、cakephpという選択はありかと思います。

ただ、cakephpはバージョンによって仕様が違うし、書き方も若干異なります。こないだ、cakephp2で作ったアプリをcakephp3で動かそうとしたらいろいろ変わってていろいろ変更しないと、動きませんでした。

wordpressもcakeも制約がいろいろあって、最初はその癖になれるのに時間がかかると思います。特にWPはファイル名とか最初いろいろ覚えないといけませんから。あと関数をフックできるポイントも多いので、「この処理どのファイルに書いたっけ?」とかなる場合もありますね。まぁIDEの関数ジャンプとかで追えばいいのでしょうが。

100万人規模のB-to-CサイトならSymfonyも考えてみていいとおもいます。bundleが充実しているし、大規模になっても、Interfaceにしっかり仕様書いて、Facadeパターンとかで書いとけば、ソースコードの流れがつかめて管理しやすいように思います。

個人的には頻繁に機能拡張あるB-to-Cサイトだと、cakephpが一番使いやすいように思います。

投稿2016/08/07 23:15

vowd1

総合スコア53

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問