ホームページ  >  に質問  >  本文

php - ある機能は関数で実装できますが、実装するにはクラスを使用する必要がありますか?

私は PHP を使用しています。現在作成しているプロジェクトの関数のほとんどは関数にカプセル化されています。必要に応じて、関数を呼び出すためにパラメーターを要求してから渡すだけです。これが悪いかどうかはわかりません。それを実装するにはクラスを使用する必要がありますか?

例として、segmentfault Web サイトのホームページを取り上げます (ホームページにはいくつかの質問が表示されます)。(MVC を使用して) 記述してもらいたい場合は、まず質問を取得する getQuestion(parameter) 関数を具体的に作成します。 require関数内でホームページモデル(class)に追加し、パラメータを渡してこの関数を呼び出し、データを取得したらViewにレンダリングします。
「この関数をrequireしてから呼び出してデータを取得する」という書き方はよくないといつも思うのですが、どうやって書けばいいのかわかりません。アドバイスをいただければ幸いです。

滿天的星座滿天的星座2698日前758

全員に返信(10)返信します

  • 大家讲道理

    大家讲道理2017-05-31 10:35:09

    実際にはそれは問題ではありませんが、最適解、標準解を求めたい場合は、を使用して実装してください。

    まだ多くの概念を理解しておらず、理解が曖昧である可能性があります。そのため、まず推奨される実践方法に従い、しばらく待ってから確認してください。

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-31 10:35:09

    オブジェクト指向のいくつかの機能: カプセル化、継承、ポリモーフィズム ニーズが抽象化されており、これらの機能がある場合は、oop の使用を検討する必要があります。

    返事
    0
  • PHP中文网

    PHP中文网2017-05-31 10:35:09

    あなたの質問は、オブジェクト指向とプロセス指向のどちらが優れているかを問うことと同じです。この問題は長年にわたって議論されていますが、最近では関数指向だと言う人もいます。 私の意見は、特定の状況の具体的な分析に基づいています。オブジェクト指向は再利用が容易で、拡張が容易で、保守が容易ですが、プロジェクトに同じ論理モジュールがある場合、またはプロセス指向の方がパフォーマンスが高くなります。重複コードが多い場合はオブジェクト指向を推奨します。構造が複雑ではなく、パフォーマンスを追求する場合はプロセス指向の方がおすすめです。実際、これら 2 つの方法はプロジェクト内で組み合わせて使用​​できます。特定のニーズに応じてください

    http://m.blog.csdn.net/articl...

    返事
    0
  • PHPz

    PHPz2017-05-31 10:35:09

    大規模なプロジェクトは可能な限りクラスを使用して実装する必要がありますが、小規模なプロジェクトは関数を使用しやすいです

    再利用が必要なものは可能な限りクラスで実装する

    クラスを使用する利点は、コードを書きすぎた場合に、モジュール化後に新しいプロジェクトを書きやすくなることです

    返事
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-31 10:35:09

    真にオブジェクト指向になるには、以下が必要です:

    • ステートフル

    • メッセージでコミュニケーションする(メッセージパッシング)

    それ以外の場合は、機能的または手続き的を検討してください。

    たとえば、クラスが静的メソッドでいっぱいであるなど、クラスを名前空間として扱うこともできます。
    しかし、require自体は名前空間の実装であるため、必要ありません。

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-31 10:35:09

    こちらの記事も読めます
    オブジェクト指向とデザインパターン /a/11...

    返事
    0
  • 漂亮男人

    漂亮男人2017-05-31 10:35:09

    間違いなく、OO プログラミングを使用してください。

    PHP プロジェクトはバージョン 7 まで発展しましたが、これはすでに非常に OO です。歴史を逆転させる必要はありません。

    パフォーマンスを追求しますか? ばかげてはいけません。Web アプリケーションのパフォーマンスのボトルネックは通常、ここにはありません。

    あなたが言及した必須の問題については、composer + 名前空間を使用するだけです。

    symfony や laravel などのフレームワーク コードを学習し、密室で作業するのをやめることをお勧めします。

    返事
    0
  • 黄舟

    黄舟2017-05-31 10:35:09

    デザインパターンは実装方法に限定されるものではなく、単なるアイデアであり、個人の好みに従ってください。
    私は個人的に、このシナリオを処理するために静的クラス (クラス内のすべての静的メソッド) を使用するのが好きです

    返事
    0
  • 某草草

    某草草2017-05-31 10:35:09

    ご都合に合わせてお越しください

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-31 10:35:09

    自分のプロジェクトをフォローしてください。1 つのプロジェクトにすべてを使用するのではなく、プロジェクトだけをフォローしてください。

    返事
    0
  • キャンセル返事