Для php как нельзя лучше подходит mvcs, где s это service. Взаимодействие происходит по следующей схеме - контроллер получает от модели данные, передает их в сервис, который возвращает данные в обработанном виде обратно контроллеру, который передает их представлению.
Так же очень важно понимать что mvc для всех разное. Например в php нет нужды в активных моделях, так как у сайтиков нет логики. А вот если бы Вы писали игровой сервер на java, то Вам бы посоветовали классическую реализацию.
Не имеет значения, как в контроллер попадают ссылку на модель и представление, это уже к mvc не относится. Но нужно например понимать что сама вью не может засунуть ссылку на саму себя в контроллер, так как она не может иметь ссылку на контроллер.
vilix: я столкнулся с той же проблемой, только у меня ещё и данные лежат не на том сервере на котором происходит прирендер. Но решение очень простое, все состояния выносить в store, которые грузятся до начала рендера.
Если бы новорожденному ребенку показали список наук, которые применяются в его жизне ежесекундно, то он бы захотел разродится обратно. Но время идет и механика, оптика, акустика, внутренние биологические процессы становятся настолько обыденными, что мы даже не думаем о них. Так же и в Вашем случаи, читайте каждый день по несколько умных статей, читайте книги, смотрите скринкасты и все заумные слова сказанные ниже, постепенно станут для Вас повседневностью.
И если Вы задаете такие вопрос работая в компании, то значит это компания очень факнинькая.
Лично с такими задачами пока не сталкивался, но первое что вспомнил, это пример поиска человеческих лиц на фото, который не может распознать чернокожего человека. Если бы это было легко, то атопилот в автомобилях появился бы уже давно.
Сергей: ну я не понимаю тогда о чем Вы.. Вы говорите что хотите код выложить в опенсоурс и следом говорите что переписать будет проблематично.
Короче или Вы фантазер или Вам обеспечена боробища с таким подходом. У Вас есть имя что Вы хотите обрасти теми кто Вам код будет писать? Если оно у Вас есть вы можете его защитить тогда, когда о Вас напишут статью в проф журнале, что Ваш софт ерунда и содержит критичные уязвимости? А уязвимости есть у всех. К примеру microsoft взяла в опенсорсе на 80% законченные исходники для редактора, точнее сказать то что она взяла было в 20% от требуемого. И вот она уже больше года не может сделать законченный релиз. Это что касается денег.
У гугла у которого есть безумно громкое имя и миллионы помощников не могут сделать с 2009года полноценную библиотеку для написания приложений и это учитывая то, что все что они хотят сделать было придумано и записано в книги больше 50 лет назад.
По этому я могу сказать с долей в 98% что раз Вы тут об этом спрашиваете, то вам точно ничего не светит.
Сергей: но сути не меняется. Если бы я был программистом, то украл бы у Вас и продавал за 2,5 доллара. А будь я производителем, то нанял бы одного очень умного программиста, чтобы он за сто тысяч, просто переписал у Вас. И тут другого пути нет, на этом программирование и строится. одни очень умные делают, потом другие не просто используют, а разбирают исходники учась на этом и как следствие из всего этого они повторяю-закрепляют полученные знания в виде своего продукта.
И ещё можно предположить, я конечно такого не знаю, но есть вариант не просто копирования, но и поддержки + лучшей чем у Вас маркетинговой стратегии.
По этому стоит задумываться не над тем, как сделать чтобы у Вас не скопировали, а как сделать чтобы у других не покупали. Вы должны быть на несколько шагов впереди на все пути копирования Вашей собственности.
Вот что я прочитал - я сопру у всех самое лучшее и сложу это в одном месте. Но что сделать мне чтобы эти поганые воришки не своровали мною придуманные в страдании украденные идеи?
Я бы лучше заплатил две тысячи долларов чтобы переписать Ваш проект, вместо того чтобы платить по три доллара миллионы раз.
и ещё удалить все расширения.. Это не вариант. А профайлер не работает так, как я ожидаю, он одну и туже кривую что на приложение, что на пустую страницу показывает.
Сергей Протько: нет, у меня как раз обратное. Если разобраться, то функциональный подход я, как и любой другой использует каждый день и не задумывается над тем что он функциональный. Но когда меня спрашивают, как лучше что-то делать я не зацикливаюсь и не говорю что Вам нужно смотреть в сторону функционального подхода, а говорю решение. То есть не подменяю повседневность модными словами. Вот Вы посоветовали человеку отказаться от любимых ему событий в пользу action's, а Вы сами их используете?
Вы сами используете подход cqrs, который не допускает исправление ошибок, так как исправить одну маленькую ошибку означает убить базу данных.. Вы сами cqrs + action используете на маленьких приложениях, о которых Вы все время говорите?
И спасибо за кастомный генераторный промис, но мне кажется что это немного не то.
Ведь предназначение генераторов это, как можно сказать в контексте js, асинхронное выполнение, сохранение контекста вызова функции до следующего вызова. И для чего это нужно натягивать на кастомный промис, когда есть нативные.
Хотя при помощи генераторов + промисы можно создать "череду асинхронного выполнения", типа сначала(...).потом(...).затем(...).. Но я читал Ваш пост в котором Вы говорили что такую реализацию бы не стали использовать... Когда Вам показывали пример из as3..
не делайте так, сайт шлачный и лагающий жутко. Таки сайты уже давно не любят и они свидетельствуют об отсутствии вкуса. Это прошлый век. Даже не стоило регистрироваться чтобы на него тут ссылку оставлять.
И не дописал в catch возвращаемого типа, который должен был подчеркнуть что это не айс когда в языке предполагающим типизацию использовать вложенные функции.
А если не использовать типизацию, то зачем тогда вообще ts?
Так же очень важно понимать что mvc для всех разное. Например в php нет нужды в активных моделях, так как у сайтиков нет логики. А вот если бы Вы писали игровой сервер на java, то Вам бы посоветовали классическую реализацию.