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

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

ただいまの
回答率

87.96%

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

解決済

回答 3

投稿

  • 評価
  • クリップ 5
  • VIEW 3,152

score 113

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さんもおそらく細かな機能追加などを積極的におこなっているため、例としていいかなと思いました。

 最後に

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

宜しくお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+3

上記は抽象的なのと、サービスの規模や追加する機能の数などにもよるかと思いますが、一つの目標に上場に向けて動くというのがありますため、ユーザー数は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で実装し直すというコストもそんなに高くないはずです。
勉強がてら、とりあえず興味ある方でスタートしてみてはいかがでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

抽象的なご要望なので、なんとも言えませんが、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が一番使いやすいように思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 87.96%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

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