2009-08-05 3 views
0

прямо к точке:В контексте MVC, где я помещаю класс?

Я использую Kohana, и я смотрю на другой скрипт, написанный на простом PHP. В сценарии у меня есть класс ShoppingCart. Если я должен преобразовать сценарий в Кохану, где я должен поставить класс, его методы и его свойства?

В моем существующем контроллере по умолчанию? Или я должен положить его в отдельный контроллер? Или как noobie, как может показаться, я поместил его в модель?

ответ

0

Это зависит от специфики класса, который я предполагаю. Честно говоря, я ничего не знаю о Кохане, но там, вероятно, есть место для «файлов поставщиков». Может быть, лучше разместить его там и написать функции оболочки для него в вашем контроллере. Если класс уже хорошо интегрируется с Kohana, вы можете вместо этого использовать его как контроллер или модель напрямую. Или вы можете потратить время, чтобы переписать его, чтобы заставить его работать в качестве контроллера ...

Только вы можете оценить лучшее место для этого, здесь нет жесткого и быстрого правила.

0

У Kohana есть папка для сторонних библиотек. Основной из них - в системе/поставщике, вы можете поместить его в свое приложение.

Многие загрузчики классов PHP требуют, чтобы данные, такие как ваше имя файла, были такими же, как имя класса (по крайней мере, это то, что я читал в документации Kohana), если вы хотите, чтобы классы автоматически загружались.

0

Если вам необходимо использовать сторонний код в своем приложении, рекомендуется создать папку в папке своего приложения/модуля с именем «поставщик» и разместить там весь этот код.

Вы можете включать файлы по телефону:

include kohana::find_file('vendor', 'filename'); 

Если потребности быть, вы также можете создать оболочку для внешней библиотеки, хорошим примером этого является the email helper, который использует третью партию Swift электронной библиотеки.

Если вы портируете свой класс в kohana, тогда вам нужно выяснить, что класс будет делать и классифицировать его соответствующим образом.

Если класс будет извлекать элементы из какой-либо базы данных, тогда вы должны сделать его образцом. Библиотеки обычно представляют собой набор кода, который вы хотите повторно использовать для контроллеров/моделей, таких как аутентификация, генерация календаря и т. Д. Контроллеры используются для передачи данных из моделей в ваши представления/библиотеки.

See the docs for more info

0

Согласно Кохана конвенции, вы должны поместить пользовательские классы в приложения/библиотеки папки. Однако для этого вам нужно знать, как заставить класс работать после его размещения. Если вы не можете понять это, вы можете сделать что угодно, как положить его в свой контроллер или сделать другим его контроллером и т. Д.

Смежные вопросы