Да, это делает всего , сохраняют код. Это - мили, легче читать, когда у Вас есть загрузки их. Они более быстры для записи и легче поддержать. Сохранение кода всегда является хорошей целью.
можно установить различные объемы:
public string PropertyName { get; private set; }
Так, чтобы свойство могло только быть изменено в классе. Это не действительно неизменно, поскольку можно все еще получить доступ к частному методу set посредством отражения.
С C#6 можно также создать верный readonly
свойства - т.е. неизменные свойства, которые не могут быть изменены за пределами конструктора:
public string PropertyName { get; }
public MyClass() { this.PropertyName = "whatever"; }
Во время компиляции, который станет:
readonly string pName;
public string PropertyName { get { return this.pName; } }
public MyClass() { this.pName = "whatever"; }
В неизменных классах с большим количеством участников это сохраняет много избыточного кода.
Ваш файл Modelname.class.php содержит класс контейнера, например Post. Этот класс имеет все методы и свойства одной строки в вашей таблице, например, таблицы Post. Если у вас есть столбцы в таблице, такие как id, текст и т. Д., Вы сможете получить к ним доступ через класс Post.
Однако ваш PostTable (или класс XxxxxTable) - это ссылка table , это означает, что этот класс должен отвечать за запросы к таблице для получения данных.
Позвольте мне привести краткий пример. Допустим, вы хотите вытащить одно сообщение из таблицы, а затем отредактировать его.
Во-первых, вы бы сделали как $ post = Doctrine :: getTable ('Post') -> findOneById (1);
Это делается из класса таблицы, потому что вы хотите извлечь некоторые данные из определенной таблицы.
Теперь у вас есть сообщение (как в объекте Post), потому что -> findOneById (...)
запросил для вас базу данных. Затем вы можете отредактировать его, например, с помощью $ post-> title = "a nice title"
. Наконец, сохраните сообщение с помощью $ post-> save ();
.
Исключение составляют случаи, когда вы хотите получить связанные объекты, которые, например, могут быть ответами на ваше сообщение. Это будет сделано с помощью объекта, который вы уже вытащили в $ post
.
Надеюсь, я ясно изложил свою точку зрения - если нет, не стесняйтесь задавать дополнительные вопросы.
Исключение составляют случаи, когда вы хотите получить связанные объекты, которые, например, могут быть ответами на ваше сообщение. Это может быть сделано с помощью объекта, который вы уже вытащили в $ post
.
Надеюсь, я ясно изложил свою точку зрения - если нет, не стесняйтесь задавать дополнительные вопросы.
Исключение составляют случаи, когда вы хотите получить связанные объекты, которые, например, могут быть ответами на ваше сообщение. Это может быть сделано с помощью объекта, который вы уже вытащили в $ post
.
Надеюсь, я ясно изложил свою точку зрения - если нет, не стесняйтесь задавать дополнительные вопросы.
XXX.class file holds Doctrine_Record descendant, which is intended to operate on a single record. Save, create, edit etc. XXXTable.class.php holds Doctrine_Table descendant, which is intended to operate on a whole table. Searching for records for example.