какова цель объявления $ name в каждом контроллере - PullRequest
2 голосов
/ 12 мая 2010

Я опираюсь на тортPHP.
Я заметил, что переменная $ name объявляется в каждом контроллере.
Какова его цель?
Это относится к названию таблицы сайтов?

<?php
class SitesController extends AppController { 
var $name = 'Sites';
...
}
?>

Если да, Могут ли пользователи ссылаться на несколько таблиц, подобных этой?
var $ name = 'Sites', 'Sites2', 'Sites3';

Ответы [ 3 ]

6 голосов
/ 12 мая 2010

Используется для совместимости с PHP4. Вы можете смело игнорировать это.

Нет, это не относится к имени таблицы ... Иногда это означает, что контроллер с именем FooController будет использовать модель с именем Foo, но это не всегда так.

И нет, вы не можете указывать такие названия моделей. Загружаемые модели перечислены в свойстве $uses:

public $uses = array ('Sites', 'Sites2', 'Sites3');
2 голосов
/ 12 мая 2010

Нет. $ name для совместимости с PHP4. PHP4 не имел полных объектно-ориентированных функций, поэтому иногда он не мог получить имя модели из класса контроллера. Установка $ name просто гарантировала, что этого не произойдет - что имя модели было явным, поэтому этой проблемы не будет.

AFAIK. Это абсолютно не нужно, если вы используете PHP5 и никогда не собираетесь использовать PHP4 в своем приложении.

1 голос
/ 12 мая 2010

Насколько я понимаю, это устаревшее соглашение CakePHP, в основном это работает без него. Cake использовал это свойство, чтобы получить правильные имена контроллеров. Ничего страшного, просто продолжай.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...