Мы делаем это таким образом, используя контроллеры в основном для обработки и реагирования на пользовательский ввод / действия (и _Logic для всего остального, кроме представления, данных и очевидных вещей _Model):
(1) (ответ, реакция - что веб-приложение «делает» в ответ на пользователя) Blog_Controller
-> main ()
-> handleSubmit_AddNewCustomer ()
-> verifyUser_HasProperAuth ()
(2) («бизнес» логика, что и как «думает» веб-приложение) Blog_Logic
-> sanityCheck_AddNewCustomer ()
-> handleUsernameChange ()
-> sendEmail_NotifyRequestedUpdate ()
(3) (представления, порталы, как «веб-приложение выглядит») Blog_View
-> genWelcome ()
-> genForm_AddNewBlogEntry ()
-> genPage_DataEntryForm ()
(4) (только объект данных, полученный в _ construct () каждого класса Blog *, используемый для хранения всего webapp / inmemoryданные вместе как один объект) Blog_Meta
(5) (базовый уровень данных, чтение / запись в БД) Blog_Model
-> saveDataToMemcache ()
-> saveDataToMongo ()
-> saveDataToSql ()
-> loadData ()
Иногда мы получаемнемного запутано в том, куда поместить метод, в C или L. Но Модель очень прочная, кристально чистая, и, поскольку все данные в памяти находятся в _Meta, там тоже нет ничего сложного.Между прочим, нашим самым большим шагом вперед было принятие использования _Meta, поскольку это очистило все грубое от различных объектов _C, _L и _Model, сделало его умственно простым для управления, плюс одним махом оно дало нам то, что происходит.называется «Внедрение зависимостей», или способ обойти всю среду вместе со всеми данными (преимуществом является простое создание «тестовой» среды).