Laravel ThinkPHP Yii symfony2 CIcakephp についての私の意見
これは私の本当の経験であり、Laravel、ThinkPHP、Yii、symfony2、CI、cakephp、Yii2 (default7#) を使用してみた後の私の本当の考えです。 zbphp.com)。
1) ThinkPHP (バージョン 3.1.3)
ThinkPHP 3.1.3を使い始めました。 入口閾値はURLとメソッドの対応です。私が初めて ThinkPHP 3.1.3 に触れたとき、バージョン 3.2 がリリースされたばかりでした。3.1.x と比較すると、3.2 は部分的にリファクタリングされ、最新の 名前空間 を使用していました。仮想ホストはネームスペースをサポートしていない可能性があり(ネームスペースは PHP 5.3.3 以降でサポートされている必要があります)、国内のほとんどの企業がすでに ThinkPHP を使用していることを考慮すると、最新バージョンではない可能性があるため、最初は ThinkPHP3 を選択しました。 .1.3を使ってホームページを作りました。全体的な印象は非常に有益で、彼はあなたのためにできる限りのことをしてくれます。さらに、thinkphp は企業によってサポートされているため、企業が PHP をプラットフォームとして使用したい場合には、非常に良い選択であり、長期的には安定しています。
2) Yii (バージョン Yii 1.1.14)
その後 ThinkPHP を学びましたそこで、将来の仕事探しや交渉がしやすくなるように、もう一つフレームワークを学ぼうと思いました。そこで偶然、PHP の面接を受けるために金融会社に行ったところ、Yii が使われていました。帰国後、インターネットで Yii 関連の情報を検索すると、AR、遅延読み込み、DAO、L10N、I18N など、Yii の紹介を称賛する人がたくさんいました。yii は非常に有望であると感じました。それから私は Yii (Yii 1.1.x) の勉強を始めました。マニュアルを読んだところ、すべて英語でしたが、Yii の作者が中国人であるという投稿を時々見かけました。後に、『Yii』は確かに中国人だけによって書かれたことが確認されました。入門編を読んで自分でダウンロードしてインストールしてみましたが、覚える必要のあるZiiウィジェットが多く、結合度が非常に高いです。 Yiiに初めて触れたとき http://bbs.csdn.net/topics/390807796) Htmlテンプレートでの書き方の方が結合度が高いので諦めました。
3)cakephp (バージョン 2.5.1)
現時点では、 heart もっと簡単なフレームワークを選びたいと思い、何年も前に聞いたフレームワーク CakePHP (最新バージョンのcakephp 2.5.1) を思い出しました。ダウンロードしてインストールし、ドキュメントをお読みください
名前空間はサポートされず、PHP の最新の関数とメソッドは使用されません。英語のドキュメントをいくつか読んだところ、Yii と比べて非常に便利だと感じました。 thinkphp と同様に、画像検証コード、SESSION、Cookie の操作について詳しく説明されており、その多くは thinkphp とよく似ています。あなたのために。それから、自分のウェブサイトを作成するためにそれをダウンロードして、最初に管理者部分を実行し始めましたが、cakephp のアイデアによれば、管理者とフロントデスクは実際には 1 つのファイルにある必要があることがわかりました。たとえば、Post テーブルがある場合、管理者とフロントエンドのすべての Post 操作は PostController 内にあり、私が期待しているのは、 を結合せずにフロントエンドとバックエンドから分離する必要があるということです。 。
4) symfony2 (symfony 2.5)
私が本で symfony を紹介され、それについて多くの非常に良いコメントをもらっていなかったら、symfony2 について知ることも注目することもなかったと思います。私は symfony2、 に触り始めましたが、そのインストール方法は、私が使用していた PHP とは完全に異なることがわかりました Composer のインストールは非常に斬新で、完全に でした。 PHP に関する私のこれまでの意見のいくつかは覆されました。実際、Symfony2 は PHP 5.3.3 以降である必要があります。この記事を書いた時点では、コンポーネントの一部が最新バージョンを必要とするため、PHP 5.4 以降である必要があります。このフレームワークに連絡したのはほんの数週間前で、この期間中にあまりにも多くのフレームワークを見てきたため、少し混乱しているかもしれません。間違いや議論がある場合は、default7#zbphp に電子メールを送信してください。コム。 symfony2 をインストールしたら、symfony2 の内容をよく読んでください。その最大の特徴は、プログラムの完全なセットの動作をコンピューターの Input+Output+CPU と比較することです。 Request Resonse と PHP 処理部分 (実際、このアイデアは後に他のフレームワーク Yii laravelcakephp 3.x にも採用されました)。 symfony2 のドキュメントを読み続けますが、そこには、thinkphp のように、画像検証コード、IP、IP の場所をクエリする方法、画像をアップロードして処理する方法については書かれていないと感じました。 symfony2 は HTTP フレームワークですが、MVC フレームワークではなく、HTTP フレームワークです。彼には C と V がありますが、M はありません。 コンポーネント化コンポーネントの考え方は、すべてがオブジェクトであるというRorの考え方とは異なります。すべてがコンポーネントであり、低結合です。
5) Laravel (Laravel4.2)
PHP MVC Framework に関する投稿を探し続けたところ、2013 年末の時点で Laravel が最も高いシェアを獲得しているという写真付きの記事 (上記の記事) を見つけました。そこで、baidu で Laravel を検索してみました。 www.golaravel.com など、エンタープライズレベルのフレームワークである laravel フレームワークやドキュメント、Restful の機能を紹介する Web サイトがすでにたくさんあります。 実際、私はずっと、このような長期的で安定した枠組みを見つけたいと思っていました。それは、明日いつか変わるというわけではありません。また、名前空間の最新機能も備えているため、、将来の頻繁なリファクタリングの手間を省くことができます 。 laravelをダウンロードしてインストールします。これはコンポーザーモードでもインストールされます。それで使ってみると、公式でずっと憧れていたルーティング機能が非常に使いにくいことが分かりました。リクエスト URL ごとにルートを記述する必要があります。これを考えると、管理者のバックエンドを含め、Web サイトにさまざまなルールを持つ URL が多数あるとは想像できません。その場合、 各 URL はルート を記述する必要があります。 想像してみてください。ロードにはどれくらいのリソースと時間がかかるでしょうか? ? ?さらに、説明にはドキュメントが豊富であると書かれていますが、私が見たものは実際には非常に少なく、不完全です (symfonycakephp と比較すると、そのドキュメントは本当にまばらです)。
6) Yii (Yii 2.0) に戻る
は名前空間をサポートし、AR をサポートし、便利で使いやすく、自動画像検証コード生成、画像アップロード処理、透かし処理を備え、I18N をサポートし、多言語に対応しています。多くの人が使用しており、成熟したドキュメントで、安定していて長期的で、エンタープライズレベルに適しています。結局、たくさんのフレームワークを比較した結果、最初に思いついたフレームワークに戻り、Yii に戻りました。最初から Yii が合わないと感じた理由を考えてみましたが、他のフレームワークと比較した結果、私が追求しているのは実行効率と速度 (もちろん相対的) であることがわかりました。
非常に多くのフレームワークを比較した結果、中国のプログラムの考え方は外国のプログラマーとは異なるという現象を発見しました。一方、外国のプログラマーは完全に自分自身のことを考えています。好みに応じて食べ物を注文してください。言い換えれば、中国人プログラマーは環境に適応しようと懸命に努力するのに対し、外国人プログラマーは環境を変えるために懸命に努力するということです。 同じ要求の厳しいプロジェクトでも、中国のプログラマーは最初にサーバーのサポートを考慮するとどうして言えるでしょうか?バージョンはサポートされていますか?何回の訪問に対応できますか?構成上の制限と最速で実行する方法は何ですか? 国内の PHP プログラムの 90% 以上が仮想ホスト上で実行されており、1 つのサーバー上に数百または数千の Web サイトが存在します。外国のプログラマはこれについてまったく考える必要がなく、自分たちのアイデアに従い、構成についてはまったく考慮する必要がなく、マシンがどのように高速に動作するかを気にする必要はありません。 🎜> マシンの構成がアーキテクチャを決定するのではなく、人がアーキテクチャを決定します には、非常に文学的な雰囲気があります。
たとえば、Laravel では、その中のすべての URL にルートを記述する必要があります。これは、Web サイト全体にさまざまな形式の URL が 3,000 個あると仮定すると、ロードにどれくらいのコストがかかるかはまったく関係ありません。それらを一度に? ?より人気のある海外プログラム Drupal もありますが、これはサーバーの構成をまったく考慮せず、純粋に人間の思考の観点から計画されており、構成を完全に無視して、すべてのコンテンツをノードと key-val 形式として想定します。 .限界。ローカル コンピューター (デュアルコア CPU、6G メモリ) で drupal を実行すると、サーバーにアップロードすることはおろか、何とも言えないほどスタックしてしまいます。 (テキスト bydefault7#zbphp.com)