Pull to refresh
16K+
50
Александр Шульман@developer

Развиваю ИТ

14
Rating
44
Subscribers
Send message
ну тут двояко… вот есть у вас форма поиска, которая может получать доп параметры, а может не получать их и какая разница

? do=search вы просто урлом передаете или хидден параметром формы поиска? в принципе без разницы. ну может не структурно, хотя я не понимаю. назовите причину по которым такие вещи нужно разделить и я, быть может, пойму о чем вы.
на практике найминг очень полезная вещь, я хотел показать, что есть методы отличные от найминга =)
разделять экшны по типу запроса не советую просто потому что часто это не нужно, но в целом идею принял, мне понравилось, действительно можно сделать чтоб сначала искалась функция
function POST_b()
если ее нет, то
function b(), так, пожалуй, иногда может пригодиться, но редко… как правило функция делает одно и тоже а от типа запроса зависит тип ответа всего лишь, либо это JSON (POST+AJAX), либо кусок страницы (обновляемый тупо AJAX) или это вся страница. эта работа ложится на другой слой вообще говоря на слой Viewer в патрене MVC и к контроллеру имеет слабое отношение, тоесть метод (action) отработав дает результирующие данные, а они уж идут либо в один либо в другой шаблонизатор.

Если действительно есть интерес посмотреть как сделать систему для сайта, то могу написать именно про это, там много подводных камней.
тут действительно не нужно париться с верх меры, ведь я рассказал о том как писать контроллер, привел такой пример, а вообще такие контроллеры удобно использовать в событийной модели разбора XML документов например, когда метод реагирует на отведенный ему XML тег, да масса примеров, SAOP так делал — удобно выходило, RPC тудаже, в целом статья о контролллере.
да я понял вас, вы, конечно, правы, в идеале нужно написать фабрику в самом абстрактном модуле, которая будет выбирать тип создаваемого модуля (в зависимости от ролей)
/**
@return Module
**/
static function fabrica($moduleName)…

реализация ее проста, но специфична для задачи в приведенном выше примере она будет наподобии:
static function fabrica($moduleName){
    if (User::isAuthenticated() and class_exists("User".$moduleName)  and is_a("User".$moduleName, "Module") ) {
         $moduleName="User".$moduleName;
    }elseif(!is_a($moduleName, "Module")){
          return null;
    }
    return new $moduleName;
}


как видите теперь вообще можно писать:
$module=Module:: fabrica($GET['module']);

и ни о чем не думать, вообще я планирую однажды написать о том как я реализую полный контроллер для создания страниц на этой идеалогии, он решает многие задачки и сильно упрощает жизнь, но статья посвящена именно тому как классы и рефлексию использовать в контроллере, а не тому как писать контроллер или реализовать MCV, но всеже забежав немного в перед я, надеюсь, ответил на ваш вопрос ;-)
по поводу пункта 2:
ReflectionMethod — нативный класс PHP служит для анализа метода класса.

по поводу пункта 1: я же тут не привожу реализацию MCV я показываю как контроллер можно построить это просто пример.

по поводу пункта 3: acl давно существует, но это другой метод, мне этот более понятен, кода видно то, что может быть использовано, а не ситуация, когда есть ресурсы, которые закрыты.
да, конечно, подправлю, хотя наверное просто писать не буду.
ответы на основные обвинения чтоб не писать каждому а то много написали.

ключевые слова в англ яз. литературе: data parallel и message passing
возможно мой перевод не корректный, но ваши посты впринципе направлены против меня, в таких сообщениях видно отсутствие попыток понять собеседника, карму понижаю ибо не конструктивные ответы… мне не нужно вообше делать авторитета или что либо в таком духе, я удивлен что сообщению уделено такое внимание.

ведь топик-то не о вреде фраймворков, а о полезности великов.

а что вам тут не нравится?
не нравится мой русский язык — конструктивно товарищи! прoтивно читать — не читайте! большенство тех, кто тут резко высказались ни написали вообще ничего.

не нравится моя позиция — это понятно (но я ж не говорю чтоб вы отказались от своей, а вы меня как носителя позиции отличной от вашей обвиняете именно). Да, я считаю что велосипеды нужно уметь писать, нужно чувствовать в себе силы написать либо кусок фрейма либо его целиком если это вам нужно.
если вопрос ко мне, то считаю, что нужно начать с задачи. поставить простенькую задачку и решить ее, конечно вначале я считаю не нужно использовать никаких фреймов, потому что нужно понять какие бывают проблемы, какие встают трудности, только когда вы узнаете какие бывают проблемы вы сможете начать искать решения. Но это моя позиция, есть другие.
искать нужно:
«функционально распределенные вычисления»
ндя… проблема понимания конечно лежит на говорящем, но это не работает в нашем случае… гуглите — все написано.
cms кстати тоже относятся к готовым решениям и к ним все в тойже мере применимо
ну не знаю, я постарался придумать пример достаточно законченым с одним контроллером, без представления и модели, ее я оставил за рамками.
контролеры давно придуманы как таковые, а вот использование в PHP их я думаю начал с первыми. я же написал что изобрел колесо — эта методика была давно известна, просто у нас о ней мало пишут.
в контексте PHP, сейчас я работаю в проекте с ZF, также приходилось использовать CakePHP, про java — NetBeens предлагает огромнейший выбьор всего, за приделы редко вылетал.
умение решать типичные задачи так же краеугольный камень времен Аристотеля, идея поста направлена не против фреймов, а за велики
странно я пишу вовсе не о том, что нельзя использовать FW, а о том что нужно писать свои велосипеды тоже, но меня не понимают.
окей., наверное на главную он действительно зря попал — все таки посоветовали, благодарю за ваш коментарий.
имею ввиду NetBeans 6-й и выше ибо до него все юзали Идею.
функциональное: когда блок «а» делает работу типа «а», блок «б» делает работу типа «б».
распределение по данным: есть поток данных и все блоки его колят, как-то синхронизируясь.
повторюсь и я… затраты на поиск/изучение готового решения часто сопоставимы с написанием своего, и еще я не против фрейморков как таковых, я против того, чтоб отказываться от велосипедов.
В ближайшее время я напишу (седня завтра) статейку про очередной велосипед, поэтому попрошу вас зайти ко мне в други чтоб я мог вам дать почитать до публикации.

Information

Rating
588-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Генеральный директор
Ведущий
From 3,000,000 ₽
Управление проектами
Ведение переговоров
Разработка ТЗ
Agile
Управление разработкой
Оптимизация бизнес-процессов
Организация бизнес-процессов
Построение команды
Стратегическое планирование
Развитие бизнеса