Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кто нибудь использует на продакшене Moose 
:(
    Опции темы
 
Устраивает вас ООП в перле?
да [ 5 ]  [45.45%]
нет [ 6 ]  [54.55%]
что такое ООП [ 0 ]  [0.00%]
Всего проголосовавших: 11
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
mvsgt
Дата 21.9.2009, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 27.3.2009

Репутация: 1
Всего: 1



Цитата(gcc @  21.9.2009,  23:55 Найти цитируемый пост)
не могли бы вы перечислить коротко что там особенного?


Посмотрите на habrahabr.ru - там есть пара статей. И в документации можно всё увидеть, в примерах к Moose например. 
PM MAIL   Вверх
gcc
Дата 22.9.2009, 04:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



может кто-то обяснить про Role в moose?
http://search.cpan.org/~drolsky/Moose-0.91...les/Recipe1.pod

или я не понял что-то или я не понял зачем это надо, как буд-то какой-то бессмысленный набор слов в документации...

http://www.gossamer-threads.com/lists/catalyst/

Это сообщение отредактировал(а) gcc - 22.9.2009, 22:54
PM WWW ICQ Skype GTalk Jabber   Вверх
KSURi
Дата 22.9.2009, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Цитата(mvsgt @  21.9.2009,  23:40 Найти цитируемый пост)
Плюс контроль за переменными класса - кто знает, сколько из-за его отсутствия остаётся спящих ошибок. А вообще вся предесть Moose проявится только в MooseX : : Declare и подобных модулях, но они, скорее всего, никогда в продакшн не выйдут.

У меня есть в одном месте MX::Declare с мульти-методами (не самая важная часть) в продакшене. В принципе не жалуюсь (только одно нарекание - почему-то часто варнинги пишет в логи, пока не разобрался как убрать). Секундная задержка видна при старте сервера, в остальном различий не заметил.

Это сообщение отредактировал(а) KSURi - 22.9.2009, 09:54


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
gcc
Дата 23.9.2009, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



подскажите какая отладка есть для moose??

Data::Dumper НЕ смотрит объект, там используется "делегирование" между классами
Код


use Data::Dumper;
print Dumper($c->request->header);



в google не нашел

http://www.google.com.ua/#hl=uk&ei=kjG...18c551f15cdb9b3

есть только для ролей 
http://search.cpan.org/~fayland/MooseX-Dum...ooseX/Dumper.pm

Это сообщение отредактировал(а) gcc - 23.9.2009, 17:38
PM WWW ICQ Skype GTalk Jabber   Вверх
ginnie
Дата 23.9.2009, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



gcc, а что Вам 

Код

print Dumper($c->request->header);


должен показать? Объект-то ведь $c->request. Попробуйте

Код

print Dumper($c->request); 



--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
gcc
Дата 23.9.2009, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



ginnie
но не видно                                      }, 'HTTP::Headers' ),

Код

$VAR1 = bless( {
                 'protocol' => 'HTTP/1.0',
                 'headers' => bless( {
                                       'user-agent' => 'Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.0.11) Gecko/2009070320 Firefox/3.0.11',
                                       'connection' => 'keep-alive',
                                       'keep-alive' => '300',
                                       'cache-control' => 'max-age=0',
                                       'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                                       'accept-language' => 'en-us,en;q=0.5',
                                       'accept-encoding' => 'gzip,deflate',
                                       'content-length' => '45',
                                       'host' => 'localhost:3000',
                                       'accept-charset' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
                                       'content-type' => 'application/x-www-form-urlencoded',
                                       'referer' => 'http://localhost:3000/'
                                     }, 'HTTP::Headers' ),
                 '_context' => bless( {
                                        'request' => $VAR1,
                                        'stash' => {



Код

    use Data::Dumper;
     print Dumper($c->Headers); 


Код

"Can't locate object method "Headers" via package "MyApp" 


тоже самое
Код

    
    use Data::Dumper;
     print Dumper($self->Headers); 


PM WWW ICQ Skype GTalk Jabber   Вверх
ginnie
Дата 23.9.2009, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



gcc, как это не видно HTTP::Headers? А это что?

Код

'headers' => bless( {
                                       'user-agent' => 'Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.0.11) Gecko/2009070320 Firefox/3.0.11',
                                       'connection' => 'keep-alive',
                                       'keep-alive' => '300',
                                       'cache-control' => 'max-age=0',
                                       'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                                       'accept-language' => 'en-us,en;q=0.5',
                                       'accept-encoding' => 'gzip,deflate',
                                       'content-length' => '45',
                                       'host' => 'localhost:3000',
                                       'accept-charset' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
                                       'content-type' => 'application/x-www-form-urlencoded',
                                       'referer' => 'http://localhost:3000/'
                                     }, 'HTTP::Headers' ),



--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
gcc
Дата 23.9.2009, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



ginnie, это вывод отладки после print Dumper($c->request); 

там надо наверное как-то по другому в дампер передать....

в исходниках каталиста сложно разобратся, я не вижу объект класса HTTP::Headers

я думал в что $c или $self, но не видно... там метода Headers

Это сообщение отредактировал(а) gcc - 23.9.2009, 18:27
PM WWW ICQ Skype GTalk Jabber   Вверх
ginnie
Дата 23.9.2009, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



gcc, я, вероятно, как-то непонятно объясняю. Класс HTTP::Request отнаследован от HTTP::Message. У HTTP::Message есть свойство headers, значением которого является объект класса HTTP::Headers. Метода, возвращающего этот объект в классе HTTP::Message нет. Поэтому единственный способ его отдельно посмотреть дампером

Код

print Dumper($c->request->{headers});


Что я теперь непонятно объяснил?


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
gcc
Дата 23.9.2009, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



gcc, извините, просто не могу разобратся... я забыл написать что хочу увидеть X-Forwarded-For все остальное с ним... (может там что-то другое есть или по другому называется!!)

(я посмотрел исходники $c->request->address он просто определяется по-моиму когда прокси, то определяется айпи из Forwarded)

$c->request->header('X-Forwarded-For')

Код

    use Data::Dumper;
print Dumper($c->request->{headers});


Код

$VAR1 = bless( {
                 'user-agent' => 'Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.9.0.11) Gecko/2009070320 Firefox/3.0.11',
                 'connection' => 'keep-alive',
                 'keep-alive' => '300',
                 'cache-control' => 'max-age=0',
                 'accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                 'accept-language' => 'en-us,en;q=0.5',
                 'accept-encoding' => 'gzip,deflate',
                 'content-length' => '45',
                 'host' => 'localhost:3000',
                 'accept-charset' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
                 'content-type' => 'application/x-www-form-urlencoded',
                 'referer' => 'http://localhost:3000/'
               }, 'HTTP::Headers' );



почему в отладке не видно X-Forwarded-For, ip и host ?

Добавлено @ 18:42
ginnie, спасибо, может там убрано из класса это (X-Forwarded-For, ip и host) скорее всего 
посмотрю еще исходники....

Это сообщение отредактировал(а) gcc - 23.9.2009, 18:45
PM WWW ICQ Skype GTalk Jabber   Вверх
ginnie
Дата 23.9.2009, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



gcc, X-Forwarded-For не видно потому, что он Вашим клиентом не передается. Он передается иногда при работе через proxy-сервер (хотя по идее, proxy должен ставить заголовок Via).
IP в заголовках тоже быть не должно, т.к. он определяется из соединения:
Код

$r->connection->remote_ip();


Это сообщение отредактировал(а) ginnie - 23.9.2009, 19:51


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
mvsgt
Дата 24.9.2009, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 27.3.2009

Репутация: 1
Всего: 1



Цитата(KSURi @  22.9.2009,  09:52 Найти цитируемый пост)
У меня есть в одном месте MX:smile с мульти-методами (не самая важная часть) в продакшене. 


Я начал с него, но столкнулся с полным неприятием кода на MX:smile Eclips'ом и PerlTidy. Плюс с отладчиками дополнительные проблемы, так что я забил на Declare.
PM MAIL   Вверх
KSURi
Дата 24.9.2009, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Цитата(mvsgt @  24.9.2009,  15:06 Найти цитируемый пост)
Я начал с него, но столкнулся с полным неприятием кода на MX:smile Eclips'ом и PerlTidy. Плюс с отладчиками дополнительные проблемы, так что я забил на Declare. 

У vim с этим проблем нет) Perltidy не пользуюсь.
Вот проблемы с отладкой, это да - большой минус. Причем это касается и просто Moose, без Declare.


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
mvsgt
Дата 24.9.2009, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 27.3.2009

Репутация: 1
Всего: 1



А у меня стиль набора текста - набирать как придётся, потом нажимать Control-F и всё приводится к стандартному виду. Без этого не получается.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1043 ]   [ Использовано запросов: 24 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.