0

CodeIgniter (CI) を学んでいます。CI が OOP の概念をサポートしているのを見てきましたが、Web やフォーラム全体のすべての例で疑問に思っています。コントローラーで宣言されたメソッドは public キーワードを使用します。これはばかげた質問ではないと思います。CI ユーザーガイドでも、常に public キーワードを使用しているのを見てきました。では、カプセル化はどうなるでしょうか。

これをクリアするのを手伝ってくれませんか。

4

3 に答える 3

3

周知のとおり、CI はMVC フレームワークです。

ここに画像の説明を入力

図に示すように、ビューはコントローラーとモデルを呼び出すことができます。コントローラーはモデルとビューを呼び出すことができ、モデルはビューを呼び出すことができます。この場合、コントローラーのほとんどのメソッドはビューによって呼び出され、この関数にはビューからのその要求を処理するロジックがあります。コントローラーとモデルにプライベートメソッドを記述できます。これは同じクラスからのみ呼び出すことができます(あなたが言うように、ほとんどの例は CI の機能を説明しようとしています。プライベート メソッドを記述する必要はありません。つまり、プライベート メソッドに慣れていない場合は、より構造化されたアプリケーションでのみ使用されます。カプセル化とカプセル化については問題ありません。すべて。

于 2012-12-20T09:47:59.697 に答える
2

コントローラーのメソッドは、実際には CI 自体によって呼び出されます。公開されていない場合、CI を呼び出すことができず、コントローラーが機能しません。そのため、すべてのアクション メソッドを にする必要がありますpublic。他の方法privateまたはを作成できprotectedます。

于 2012-12-20T07:39:32.537 に答える
1

優れたプログラミング手法に従い、わかりやすいコードを書きたい場合はpublic、メソッドに追加してください。そうでなければしないでください。(私は、正統派のプログラマーの何人かが私の後に来ることを知っています!)

PHP5 メソッドのデフォルトはpublic、記載されていない場所です。

明示的な可視性キーワードなしで宣言されたメソッドは、public として定義されます。

ソース: http://www.php.net/manual/en/language.oop5.visibility.php

于 2012-12-20T07:50:00.397 に答える