• Catalyst — Perl веб-фреймворк в лучших традициях MVC

    А что это за /add1 и /add2, это контроллеры или экшены? Дайте-ка сюда вашу табличку наподобии этой:

    [debug] Loaded Path actions:.-------------------------------------+--------------------------------------.| Path | Private |+-------------------------------------+--------------------------------------+| / | /default || / | /index || /add1 | /admin/add1 || /add2 | /admin/add2 || /admin | /admin/index || /user | /user/index || /user/log_as_admin | /user/log_as_admin || /user/log_as_user | /user/log_as_user |'-------------------------------------+--------------------------------------'
  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    Сразу скажу, что в правилах ACL нужно указывать значение из колонки «Private». Т.е. если у меня есть /add1, то в ACL нужно указать /admin/add1

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    Так, хорошо, тогда скиньте еще ваши ACL правила. У меня такое предчувствие, что одно попросту перекрывает другое. Попробуйте создать похожую структуру вашего приложения с вашими ACL правилами вот в этой пустышке: demo-0.01.tar.gz (поправьте demo_server.pl (путь к перлу) и установите необходимые модули) Если оно будет работать там, то значит проблема может быть скрыта где-то в плагине аутотентификации. Если же оно по прежнему не будет работать как надо — то проблема в ACL правилах, и их нужно будет переделать. Что же касается вопроса по Rose: DB: Object — то это просто Маппер (ORM), который работает вне Каталиста, и соответственно просто «забивает» на эти доступы, если, конечно, вы сами не допишете нужный код. Зато очень помогает если много таблиц и отношений (relations) между этими таблицами. Если вы решитесь его использовать, то советую прочитать весь Rose: DB: Object: Tutorial перед началом серьезной работы с ним, это поможет избежать нескольких граблей. В целом, работа с ним намного приятней и проще чем с DBI.

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    В своих целях, я использую Apache 1.3.41, под который я успешно настроил FastCGI, и запуск Каталист-приложений, по переведенному Вами мануалу на CPAN. Со вторым Апачем у меня действительно были проблемы, правда немного другого характера, чем описанные вами и мне пришлось от него пока отказаться.

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    Для этого нужно пользоваться development веб-сервером, который лежит у вас в script/%app%_server.pl. Его нужно запустить с ключем -r.

    $ perl script/%app%_server.pl -r

    Тогда он будет перегружаться после изменений кода.

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    1O_O контроллеров? Круто;) Да, конечно можно их сделать иерархичными, по типу MyApp: Controller: Blog: Add, MyApp: Controller: Blog: Edit и т.д. без проблем. Можно даже немного похачить Каталист, чтобы у вас было несколько папок «Controller». Я писал про это вот тут: Но, ни разу не применял, так как посчитал что это слишком грязный хак:)

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    тоесть это будет так: /lib/controller/Blog/edit.pm

    Немного подправлю: /lib/YourAppName/Controller/Blog/Edit.pmТо контроллер будет называться YourAppName: Controller: Blog: EditИ будет автоматически подхвачен и инициализирован Каталистом.

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    С открытым исходным кодом есть такой проект: http://handelframework.com/

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    1) >> зачем писать use base qw (Catalyst: Model);? Так сложилось, что Catalyst: Controller и Catalyst: View содержат дополнительные методы, по сравнению с Catalyst: Component. Catalyst: Model их не содержит. Т.е., по сути это тот же самый Catalyst: Component, но в будущем, набор методов базового класса Catalyst: Model может быть расширен. Именно по этому лучше наследоваться от Catalyst: Model. 2) >> подскажите зачем в некоторых методах ставиться два знака подчеркивания? Все зависит от конкретного автора кода. Скорее всего, это просто такой стиль кодирования. Но, в любом случае, если перед именем метода стоит либо один, либо два знака подчеркивания, это означает, что такой метод является внутренним (приватным) для класса и его не следует вызывать извне.

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    А какое отношение имеет perl script/%app%_server.pl —r к режиму CGI? O_OЕго нельзя запускать под CGI, для этого есть script/%app%_cgi.pl%app%_server.pl —r может иногда глючить и не уничтожать соединения после перезагрузки.А чему равно значение max_connections? В my.ini (активный конфиг файл MySQL). Да, такая проблема вполне возможна, ведь в режиме CGI каждому процессу необходимо свое подключение к базе. Так что тут либо нужно либо увеличить max_connections, либо переходить на mod_perl/FCGI, но сначала, нужно убедится, что такая ошибка воспроизводится на нескольких машинах

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    >>, но я не опнял зачем там используется Catalyst: ControllerТаким образом, FormBuilder инициализирует данные формы, которая описывается в.yaml файле. FormBuilder не знает, какой конкретно файл конфигурации формы ему использовать, и узнать он это может только при вызове Экшена. Именно поэтому он и перехватывает sub create_action. >> в Catalyst: Action если я правильно понял сделан для того чтобы >> «прицепить» к объекту $c методы (только не понятно зачем) Точно не могу сказать, возможно он там что-то и цепляет, но точно скажу, что $c — это единственный способ в Каталисте узнать о параметрах текущего запроса. Все данные формы, и другая информация берется из контекста ($c). Свои методы в $c обычно цепляют Плагины, это удобно, когда нужно чтобы какой-нибудь метод был доступен везде, где есть доступ к $c. 3) вот я написал свой класс! >> что мне надо в него добавить, что он вызывался так как >> Catalyst: Controller: FormBuilder>> my $form = $self-> formbuilder, инициализировался сам? и чтобы методы его >> «диспатчизировались» есл ия правильно понимаюЯ бы не советовал делать нечто похожее на FormBuilder. Это сложно и займет уйму времени. Придется перехватывает те же самые create_action и подобные методы, времени это совсем не сэкономит. Если хочется написать что-то свое, то лучше реализовать это как Плагин, а не контроллер. Вот пример: http://search.cpan.org/perldoc...Я сейчас остановился на HTML: FormFu — из тяжеловесов по обработке форм, считаю его лучшим: http://search.cpan.org/perldoc...

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    Это вспомогательные модули. И документация есть, вот например: http://search.cpan.org/perldoc...По идее, эти CRUD’ы экономят строки кода, но зато они ограничивают программиста в выборе средств валидации формы и работы с БД.

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    Я как-то писал у себя в блоге про установку на хостинг, может поможет: Catalyst и shared хостинг под FreeBSDСмысл в том, что нужно собрать все на такой же ОС, и при помощи PAR перенести скомпилированные модули на сервер в локальную lib приложения. У меня под FreeBSD так получилось. Доступ у меня был только по FTP.

  • Тайм менеджмент. @waiting_for и @action

    Можно не удалять, а архивировать или перемещать в другую папку. Главное, чтобы письма не нужные сейчас не мозолили глаза в Inbox.

  • Тайм менеджмент. @waiting_for и @action

    Gladimdim, Да, я раньше использовал фоловапы для маркировки особо важных писем. У меня их было около сотни. Это не эффективно. Еще раз хочу сказать, что папку @action я использую для того, что я буду делать сегодня, @waiting_for — для того что планирую делать в ближайшее время. Фоловапы не дают такой функциональности, но я их использую для отметки важности письма. Есть письма, которые можно удалить. Скажем, если идет какой-то thread переписки, то старые письма можно удалить, так как они уже есть в новых. Есть рассылки, которые вам особо не нужны. Некоторые письма, я перетаскиваю в @notes, если считаю их хоть более менее важными, и не хочу удалять. Моя задача за день — освободить папку @action. Если я это сделал — то могу идти домой без угрызений совести по недоделанной работе. Это ваше право судить «о чем» статья или «ниочем», мне этот простой способ очень помог, и использую его не одну неделю. Я просто хотел поделиться.

  • Тайм менеджмент. @waiting_for и @action

    Redron, я соглашусь, что для статьи это не дотягивает. Но, мне кажется, что и на форуме моей заметке не место. Я называю это «заметкой», в принципе что-то среднее между статьей и топиком на форуме, ИМХО.

  • Тайм менеджмент. @waiting_for и @action

    Frenzy Delirium, >> Я конечно понимаю, что у тестеров лейтмотив «чем больше тем лучше», но в данном >> случае "лучше меньше, да лучше«Какая все таки хорошая фраза. У тестеров лейтмотив действительно «чем больше тем лучше», и на то у нас есть свои причины. Но, в разумных приделах, конечно больше, и чтобы действительно было лучше:). На счет «лучше меньше, да лучше», ну нет. Не согласен. Я хочу, чтобы ресурс обновлялся. По крайней мере, каждый день по одной заметке или статье. Сейчас, лично для меня, планета и статьи — это самое интересное что есть на ДОУ. Вашу критику, Frenzy Delirium, на счет серой банальщины, я принимаю, тем более что, судя по оценкам и комментариям, не только вы так думаете. Но, кроме критики, также предлагаю, написать свою статью, когда, конечно, будет желание и вдохновение, чем вы безусловно подтвердите знание технологий, указанных в вашем профиле. Мне бы было интересно почитать новую статью/заметку по каждой указанной вами технологии/ОС/ЯП.

  • Тайм менеджмент. @waiting_for и @action

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

  • Тайм менеджмент. @waiting_for и @action

    DiGiTAL, нет, конечно две папки не заменят трекер. Мы тоже, юзаем трекеры. Но, есть таски не такие глобальные, которые туда просто не попадают, и решаться по почте. После того как завершил задачу — отписался и референс есть в папке «Sent». А на счет «глобальных» тасков, я просто выбираю из трекера все то, что буду делать сегодня, и шлю себе письмо. Когда сделаю — отпишусь в трекере и удалю свое письмо. И на счет удаления писем, согласен, удалять все без разбору не нужно. Я если в чем-то сомневаюсь, то просто переношу письмо в папку @notes, главное, чтобы Inbox был чистым и не отвлекал кучей не разобранных писем.

  • Всему, что нужно знать, чтобы быть хорошим программистом, я научился в детском саду

    Спасибо, это замечательный перевод хорошей статьи

← Сtrl 12 Ctrl →