2

私は .net のバックグラウンドを持っているので、Lithium で見られる空のクラス (モデル) は不安です。
.net では、次のようなことをしない限り、プロパティはありません。

public class MyClass()
   public property myProp as string
end class

そして、次のようにプロパティを設定または取得します。

dim aClass as myClass
aClass.myProp = "some string"
dim myString as String = aClass.myProp

私が Lithium で見ているのは、javascript のような動的オブジェクトです。
任意のオブジェクトを宣言し、プロパティを追加することができます。これが悪いことだと言っているのではなく、ただ知りたいだけです。

  1. これが PHP の正常な場合、または Lithium の正常な場合、および
  2. プロパティを追加すると (eclipse でコード補完を取得できるように)、Lithium の ORM 機能が損なわれますか?
4

1 に答える 1

3

Lithium はかなり高度で、多くのフレームワークにない PHP 機能を利用しています。PHP のオブジェクトにプロパティを直接追加できますが、フレームワークを使用する場合は、ベスト プラクティスとは何か、それがアプリケーションにどのように影響するかを確認する必要があります。

Lithium では、データベース レコードまたはドキュメントを表すエンティティ オブジェクトまたはエンティティ オブジェクトのコレクションを返しますMyModel::create()MyModel::find()

エンティティ プロパティは保護された配列と配列に格納され、$_updatedメソッドとメソッド$_dataを介してアクセスされます。 __get__set

したがって、 を参照する$myModel->titleと、 が取得/設定されます$myModel->_updated['title']

次に、 を呼び出すと$myModel->save()、 のデータが$_updatedデータベース レコードまたはドキュメントに保存されます。

詳細については、 https://github.com/UnionOfRAD/lithium/blob/master/data/Entity.phpを参照してください。

于 2011-12-19T16:00:33.047 に答える