ホームページ  >  記事  >  バックエンド開発  >  [Yii] 私は Yii を初めて使用しますが、Yii フレームワーク (Yii 1.1.x) についての考えや感情を共有したいと思います。

[Yii] 私は Yii を初めて使用しますが、Yii フレームワーク (Yii 1.1.x) についての考えや感情を共有したいと思います。

WBOY
WBOYオリジナル
2016-06-23 13:55:161105ブラウズ

私が Yii を取得しようと思った理由は、Yii フレームワークの習熟度を必要とする PHP の採用要件を多く見たからです。
第一印象は、このフレームワークは中国人によって作成されたものですが、すべて英語です。最近は Yii 決定版ガイドを読んでいます。
私の最初の気持ちについて話させてください (Yii 1.x):




1) ファイル構造が乱雑です。
フレームワークなのでアクションは/protected/controllers/post/CreateAction.phpに分離できます。これにより、アクションとコントローラーが混同されやすくなります。




2) ビューを制御したいという欲求が強すぎるため、テンプレートは純粋な PHP を使用します。プログラマーならフロントエンドを書かなければなりませんか?
ウェブサイトのプロジェクトで、アーティストに HTML DIV CSS テンプレートを切り取るように依頼した後、PHP プログラマーに、内部の HTML タグを PHP タグに置き換えて再度実行するように依頼しました。
Yii の CHtml は多くの人から賞賛されていますが、Web サイトに機能はあっても見た目が良くない場合、訪問者が好きだけのプログラマーであることを期待しないでください。 Fangfang のフレームには、表のようにぴったりと揃ったページが 1 枚もありません。


注意してください: Web サイトの Web ページはソフトウェアとは異なり、ソフトウェアは数年以上にわたって機能が改善されることがありますが、Web ページと訪問者は新鮮さと視覚的なインターフェイスを好むため、インターフェイスと UI を常に変更する必要があります。

定期的な改訂、3日で小さな改訂、1ヶ月で大きな改訂、そして3ヶ月でまた改訂です。インターフェースは頻繁に変更する必要があります。この場合、HTML プロトタイプを直接使用してテンプレートを作成すると、アーティストはプログラムの介入を必要とせずに、DIV の作成後に直接それを使用できます。ただし、CHtml のような高度に結合されたビュー(テンプレート)の記述方法を使用する場合、追加のプロセスが必要になります。つまり、アーティストが用意した DIV HTML を Yii を知っているプログラマーが変換する必要があります。 Yii ビューのテンプレート、これは無駄ではないでしょうか?人材、時間、資金。 PHP の効率性と速度に反しますか?
実際、Yii の公式 Web サイトも非常にシンプルです。なぜ Apple は成功しているのでしょうか? この時代では、UI インターフェイスが非常に重要です。





3) それぞれの結合度が高すぎる、新しい言語のように感じます。
Yii の参入障壁は他のフレームワークよりもはるかに高いです。それぞれが高度に結合されており、すべてが同じ構成になっています。結合が強ければ強いほど、構成ファイルが隅々まで分散し、保守コストが高くなり、時間がかかり、保守効率が低下します。非常に効率的に実行される可能性があります)。



Yii の魅力:
1) 51job や Zhaopin で PHP プログラマーを募集している人の多くは、Yii に熟練している必要があることを求めています (実際、これらの要件を見ると奇妙に感じますが、その説明には次のことが必要です)プロジェクト全体が Yii と DIV CSS UI の両方に習熟していることが必要です。プログラマーが Yii に取り組む必要がある場合、Yii を単独で実行させるのは少し非現実的です。大規模なプロジェクトでは、DIV も書かなければなりません。)

2) たとえば、Zhihu や検索エンジンで MVC フレームワークのランキングを検索すると、Yii に対する賞賛や推奨がたくさんあります。主要な再投稿記事と PHP MVC フレームワークのランキングが表示され、非常に高い評価を得ています。



上記は、Yii についての私の最初の感情の一部であり、一緒に話し合って、より早く習得して理解できるようになることを願って書き留めています。デフォルトでは7#zbphp.com

ディスカッションへの返信 (解決策)

Yii2.0 について学ぶことを歓迎します。あなたが言及した問題のほとんどは、Yii 2.0 時代に改善されています。
PHP をテンプレートとして使用するかどうかについては、意見が分かれます。テンプレート エンジンの学習は、PHP の学習とそれほど変わりません。 2.0 は、smarty と twig をネイティブにサポートします
カップリングの問題については、よく考えると、Yii はワンストップのソリューションを提供します。必要に応じて、コンポーネントを置き換えたり、テンプレートを変更したり、キャッシュを追加したりできます。 2.0 は、DI などのさまざまなデカップリングをネイティブにサポートします。
新しい言語などの問題に関しては、Yii は多くの DSL パターンを使用します。このモデルはマイクロソフトによって発明されました。使いやすいからです。
混乱の問題に関して言えば、あなたは ActiveRecord を学習しておらず、ActiveForm を使用していませんでした。これらの組み合わせが最新の PHP フレームワークの中核です。これらの機能を適切に使用すれば、効率は非常に高くなります。 Yii2.0 では、クエリとパフォーマンスを分離する新しい ActiveQuery と、更新されたマルチリレーションシップ クエリが追加されています。時間があるときに確認してください。
セキュリティ設計、GII コードジェネレーター、開発者ツールバー、デバッグモード、Codeception デバッガー、フィクスチャーデータカスタマイザー、Bootstrap 拡張機能などの機能に加えて、数え切れないほどの機能があり、学習曲線自体は問題ありません。これらの機能を使用しなくても問題はありません。ネイティブ PHP として使用するのは簡単ですが、一度使用すると、その利点に比例して使いやすくなります。
できないからといって、できないわけではないので、一生懸命働かなければなりません。Yii を使用している企業の CTO は愚かなのでしょうか?

yii の欠点だけが見え、yii2 の利点は見えません。どのフレームワークにも欠点はあります。
1. yii の最も重要な本質は OOP です。
これが yii フレームワークの全機能であり、企業採用の主な理由でもあります
2. 前述したように、yii はさまざまな便利な機能を提供しているため、開発スピードが速いです。 3. ファイル構造は乱雑です。これは個人の習慣に従って完全に整理されています。これを書くことができます。
Actions
CreateAction.php
Readaction.php
CONTROLLER.php
作成した内容が非常に満足できるものであれば、ActiveForm を使用できます。
「」 比 率
は TP Ci よりもはるかに効率的です!




使用する予定はありません。つまり、雇用の圧力がないということです
Yii2.0 は php 5.4 以降で動作すると言われています

したがって、テンプレート内の

Yii テンプレートに対する投稿者のコメント 批判、つまり Smarty への批判、つまりビジネス ロジックをビューから分離するためにテンプレート エンジンを使用するすべてのフレームワークへの批判、つまり MVC のデザイン パターンへの批判

要するに、聞いてください

コントロールフローを導入してテンプレートで使用したい場合は、Smarty のようなテンプレート言語を作成する代わりに、Yii のように PHP コードを直接使用する方が良いです
少なくとも学習の難易度は軽減されました。一度 PHP を学べば、ようやく食べるものができるようになります

このようなフレームワークが存在することを心から願っています: HTML で宣言された PHP コードをクライアント上で実行するために JS コードに変換できます。これにより、php と js を学習する手間が省けます



個人的には、あなたの言ったことは意味がないと思います

1) ファイル構造が乱雑です: フレームワークはアクションを個別に記述する必要がありますか?これは、Controller として記述できます
2) ビューを制御したいという欲求が強すぎる: 最初の点と同様に、この関数の使用を強制する人はいません。ActiveForm が有効になっているかどうかを確認するために、どちらか便利な方のフォームを自分で作成します。

事実が証明しているのですが、正規の企業は分業が明確で、アーティストにフロントエンドスタッフのスライス作業をやらせたり、アーティストやフロントエンド開発者にプログラムのセットアップをさせたりしないのは、比較的悪質なネットワーク構築会社だけです。非公式の企業は、給料を得るためにさまざまな種類の仕事をします


フレームワークは、使い方次第で、すべての組み込み機能を使用できるわけではありません。 . 枠組みに囚われないでください!


Chtml フォーム ActiveForm については、使用しても使用しなくても構いません。しかし、私は個人的に、Yii の最も優れている点は OOP と MVC、そしてその魂であると考えています。実行時にすべてのクラスをロードするのではなく、必要に応じて使用してください。ここに効率性があります。これは、多くの企業が YII を必要とする理由でもあります。

Yii を使用して 2 つのプロジェクトを完了し、現在 3 つ目のプロジェクトに取り組んでいます。今回のプロジェクトは比較的大規模で、より多くの機能があります。
最初の 2 つのプロジェクトでは他の人と協力し、一度は完全に自分で行い、その後はチケット発行システムを構築していました。全体的なインターフェイスの要件は高くなかったので、探しませんでした。フロントエンドで、すべて自分で書きました。
Yii の全体的なデザインは非常に使いやすいと感じています。上で述べたように、Nani には十分ではないと思われる機能がたくさんあります。解決策として、Yii はもう 1 つの選択肢を提供するだけです。それは、あなたがそのフレームワークに慣れていないことを意味します。

Yii は確かに少し勉強する価値があります。初心者にとっては複雑ですが、一度使用するとその利点が理解できるでしょう。最初は感じられないかもしれませんが、後でメンテナンスするときに、必要に応じて変更でき、すぐに完了することができ、非常に便利です。もちろん、合理的なデザインであることが前提です

1) ファイル構造が乱雑です。

フレームワークなのでアクションは/protected/controllers/post/CreateAction.phpに分離できます。これにより、アクションとコントローラーが混同されやすくなります。
独立したアクションは通常、より多くの場所で使用されるか、より複雑なビジネスを行うため、独立しているのが通常です。フレームワークにはこのような書き方がありますが、これを使用することが必須ではありません。それが良くないと感じる場合は、この方法を使用することはできません。 Yii の学習に共通する欠点を反映するために、Yii のすべてのテクノロジーをプロジェクトに適用する必要はありません。 「症例に応じて適切な薬を処方する」、使うべきものは使い、使ってはいけないものを押し付けるのは良くありません。

フィルターもOK
+ はフィルター対象のアクションを示します
- 他のすべてのアクションをフィルターする必要があることを示します
書かれていない場合は、すべてのアクションをフィルターする必要があります
+- 最初は少し使いにくかったですが、それは許容されます
文字列の場合は、最初の文字列の前にフィルターを追加します。条件が満たされる場合、filterPostOnly が呼び出されます (例)
配列の場合は、CFilter のサブクラスであり、2 つを実装します。
具体的にどれを使用するかは開発者次第です

CHtml のように、バックエンドを実行するのはあなただけです。はフロントエンドにはあまり適していませんが、フレームワークはこれらの使用を強制するものではないので、テンプレートの問題は問題ないと思います。 TP のようなテンプレート タグを使用する方が良いです。ページの作成を開始する方が良いでしょう。しかし、彼らはそれを知りません。 Yii の使用は、テンプレート タグを記述する代わりに PHP ステートメントを記述することを除いて同じではありません。これにより、テンプレート タグを PHP ステートメントに置き換えるプロセスもあります。

Yii にはまだ良い点があります。フレームワークはそれを使用するすべての人を満足させることはできません。何かが良くないと思われる場合は、独自の要件に応じてカスタマイズできます (将来のフレームワークのアップグレードに注意してください)

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。