CodeIgniter (CI) を学んでいます。CI が OOP の概念をサポートしているのを見てきましたが、Web やフォーラム全体のすべての例で疑問に思っています。コントローラーで宣言されたメソッドは public キーワードを使用します。これはばかげた質問ではないと思います。CI ユーザーガイドでも、常に public キーワードを使用しているのを見てきました。では、カプセル化はどうなるでしょうか。
これをクリアするのを手伝ってくれませんか。
CodeIgniter (CI) を学んでいます。CI が OOP の概念をサポートしているのを見てきましたが、Web やフォーラム全体のすべての例で疑問に思っています。コントローラーで宣言されたメソッドは public キーワードを使用します。これはばかげた質問ではないと思います。CI ユーザーガイドでも、常に public キーワードを使用しているのを見てきました。では、カプセル化はどうなるでしょうか。
これをクリアするのを手伝ってくれませんか。
周知のとおり、CI はMVC フレームワークです。
図に示すように、ビューはコントローラーとモデルを呼び出すことができます。コントローラーはモデルとビューを呼び出すことができ、モデルはビューを呼び出すことができます。この場合、コントローラーのほとんどのメソッドはビューによって呼び出され、この関数にはビューからのその要求を処理するロジックがあります。コントローラーとモデルにプライベートメソッドを記述できます。これは同じクラスからのみ呼び出すことができます(あなたが言うように、ほとんどの例は CI の機能を説明しようとしています。プライベート メソッドを記述する必要はありません。つまり、プライベート メソッドに慣れていない場合は、より構造化されたアプリケーションでのみ使用されます。カプセル化とカプセル化については問題ありません。すべて。
コントローラーのメソッドは、実際には CI 自体によって呼び出されます。公開されていない場合、CI を呼び出すことができず、コントローラーが機能しません。そのため、すべてのアクション メソッドを にする必要がありますpublic
。他の方法private
またはを作成できprotected
ます。
優れたプログラミング手法に従い、わかりやすいコードを書きたい場合はpublic
、メソッドに追加してください。そうでなければしないでください。(私は、正統派のプログラマーの何人かが私の後に来ることを知っています!)
PHP5 メソッドのデフォルトはpublic
、記載されていない場所です。
明示的な可視性キーワードなしで宣言されたメソッドは、public として定義されます。
ソース: http://www.php.net/manual/en/language.oop5.visibility.php