Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [Symfony] Разрешить несуществующие екшены / 21 сообщений из 21, страница 1 из 1
15.05.2012, 10:22:26
    #37794324
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
Проект на Symfony.
Есть десяток екшенов, с дублирующим кодом (он сам поднастраиваеться в зависимости от $this->getActionName()).
Сейчас реализвоано так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public function executeIndex() {
  $this->_panel();
}

public function executeDetailed() {
  $this->_panel();
}
public function executeMessages() {
  $this->_panel();
}

....
protected function panel(){
....
}


Хочеться без этих бесмысленых executeIndex, executeDetailed... Как быть? К примеру через __call(), но перед запуском симфони сам проверяет через method_exists существует ли екшен. Как быть? Подойдет любое решение даже не это.
...
Рейтинг: 0 / 0
15.05.2012, 11:15:40
    #37794459
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
авторЕсть десяток екшенов, с дублирующим кодом
дальше в сад. читать буквари.
...
Рейтинг: 0 / 0
15.05.2012, 11:28:40
    #37794495
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
ScareCrowавторЕсть десяток екшенов, с дублирующим кодом
дальше в сад. читать буквари.

Скажи плиз, какой смысл писать подобные посты, если они все равно никак не решают проблему. Возможно, конечно, поднимают твою самооценку, но данный форум не для этого предназначен. Когда ты создаешь темы "как написать простейшую регулярку" тебя не посылают читать доки а помогают, но потом этим же людям ты начинаешь действовать на нервы.
...
Рейтинг: 0 / 0
15.05.2012, 11:30:16
    #37794499
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
Ренат,

может там есть что-то типа beforeAction или init() в Yii ?
...
Рейтинг: 0 / 0
15.05.2012, 11:30:53
    #37794500
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
Ну или с помощью роутинга
...
Рейтинг: 0 / 0
15.05.2012, 11:35:10
    #37794510
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
разрешить несуществующие экшены нельзя.
делать экшены с одинаковым кодом нельзя.
...
Рейтинг: 0 / 0
15.05.2012, 11:37:28
    #37794520
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
preExecute выполнится до генерации ошибки или после?
...
Рейтинг: 0 / 0
15.05.2012, 11:39:37
    #37794527
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
HettpreExecute выполнится до генерации ошибки или после?
да неправильно это. если экшены делают одно и тоже - значит это просто один экшен.
...
Рейтинг: 0 / 0
15.05.2012, 12:45:01
    #37794756
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
ScareCrowда неправильно это. если экшены делают одно и тоже - значит это просто один экшен.
они делают разное вроде
Ренатон сам поднастраиваеться в зависимости от $this->getActionName()

другое дело зачем и почему так сделано?
видимо отличия незначительны
...
Рейтинг: 0 / 0
15.05.2012, 12:52:56
    #37794797
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
1. Yii это дома, а на работе у нас Symfony
2. beforeExecute есть но он выполняеться после того как 404 выкидывается
ScareCrowHettpreExecute выполнится до генерации ошибки или после?
да неправильно это. если экшены делают одно и тоже - значит это просто один экшен.
Может быть и так, но хочеться как то по красивому.

Моя задача:
детальная информация о пользователе, состоит из десятков блоков.
каждый блок - это шаблон и набор переменных для этого шаблона.

Дополнптельно хочеться чтобы каждый блок можно было смотреть по отдельности.

Я все реализовал так:
executeIndex - бегает по всем методам получения переменных для блоков. И генерит через все блоки через общий шаблон путем include_partial.
и поскольку у каждого блока есть имя, к примеру detailed,messages итд, я создал екшены executeDetailed, executeMessages которые в тупую получают переменые для шаблона и выводят шаблон.

2. везде
...
Рейтинг: 0 / 0
15.05.2012, 12:56:27
    #37794821
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
ну а с помощью роутера то там можно все запросы к определенному контролеу направить на один экшен?
...
Рейтинг: 0 / 0
15.05.2012, 12:57:07
    #37794826
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
автор, я создал екшены executeDetailed, executeMessages которые в тупую получают переменые для шаблона и выводят шаблон.
в первом сообщении всё не так.
...
Рейтинг: 0 / 0
15.05.2012, 12:57:45
    #37794830
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
Hettну а с помощью роутера то там можно все запросы к определенному контролеу направить на один экшен?
а причем здесь роутер?
...
Рейтинг: 0 / 0
15.05.2012, 13:00:58
    #37794849
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
при том, что он может сделать так, чтобы все запросы к определенному контролеру вызывали заданный экшен.
...
Рейтинг: 0 / 0
15.05.2012, 13:02:40
    #37794857
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
Hettпри том, что он может сделать так, чтобы все запросы к определенному контролеру вызывали заданный экшен.
это делается созданием единственного экшена в контроллере и вызовом его.
...
Рейтинг: 0 / 0
15.05.2012, 13:05:29
    #37794868
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
ну так я и это и предлагаю сделать.
...
Рейтинг: 0 / 0
15.05.2012, 13:50:28
    #37795020
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
ScareCrowHettпри том, что он может сделать так, чтобы все запросы к определенному контролеру вызывали заданный экшен.
это делается созданием единственного экшена в контроллере и вызовом его.
Спасибо через роутинг и сделал
...
Рейтинг: 0 / 0
15.05.2012, 17:00:28
    #37795633
SmeL_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
По идеи нужно патчить симфони, и следовательно все новые версии также придется патчить Вас это не пугает?
...
Рейтинг: 0 / 0
15.05.2012, 17:02:01
    #37795636
SmeL_md
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
SmeL_mdПо идеи нужно патчить симфони, и следовательно все новые версии также придется патчить Вас это не пугает?Вначале нужно прочесть до конца и только потом писать ответ
...
Рейтинг: 0 / 0
15.05.2012, 17:42:08
    #37795735
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
руки за это надо отырвать
...
Рейтинг: 0 / 0
16.05.2012, 09:47:57
    #37796447
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Symfony] Разрешить несуществующие екшены
SmeL_mdПо идеи нужно патчить симфони, и следовательно все новые версии также придется патчить Вас это не пугает?
Роутинг через routing.yml прописал, а трогать исходники симфони
а. у меня нет доступа
б. признак плохого тона
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [Symfony] Разрешить несуществующие екшены / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]