Как стать автором
Обновить

Комментарии 35

Как раз мне это скоро пригодится :) Спасибо
на здоровье ))
спасибо большое - очень полезно! пока не нужно,но думаю пригодится!
пожалуйста ))
По моему тут ошибка:
$acl->deny('member','login');
$acl->allow('guest','welcome');
$acl->allow('guest','logout');


Должно быть:
$acl->deny('member','login');
$acl->allow('member','welcome');
$acl->allow('member','logout');
Спасибо. Исправил ))
А по-моему, строки с deny вообще лишнии: в зенд-ацл то, что не разрешено, запрещено.
посмотрю, а вобще в проектах побольше, пользователей желательно наследовать друг от друга, благо Zend_Acl это позволяет
Здорово. Спасибо. Только вот Zend смущает ;)
не за что. а чем смущает то?
Ну тем, что он вообще используется ;) Есть, например, phpGACL.
гм, во-первых для функционала не заметил особо разницы, во-вторых не понял зачем мне тянуть в приложение ADODB, поскольку как я понял у них там зависимости, в третих, не вижу проблем подогнать код под необходимую библиотеку.
По авторизации есть альтернатива - Erkana auth от Michael Wales.
Есть также замечательный "starter's pack" от того-же Michael Wales, где авторизация уже включена, и от CI_Controller наследуются три разных контроллера соответствующие разным уровням доступа: Public_Controller, Member_Controller и Admin_Controller.
очень удобная штука для быстрого старта.
Библиотек есть много, хороших и разных, но далеко не все они достаточно гибки,
как вы например сами сказали в Еркана три контроллера, для 3 груп пользователей, а что делать если и 8 или 12 ?

А вообще идентификацию созательно не затрагиваю, потому как в этом деле у каждого свои предпочтения, да и далеко не всегда пишешь систему с нуля и бывает что она уже реализованна. От себя могу порекомендовать Zend_Auth ))
Немного неправильно. Три контроллера - это в стартер паке, т.е. в аналоге того что предложили вы. И главное достоинство ерканы - это то что она лишь костяк авторизации, т.е. набор методов которые помогут вам быстро реализовать именно ваши предпочтения. Это и удобно. Поэтому я в своё время не решился даже смотреть FreakAuth - она черезвычайно перегружена.
Вообще я чувствую надо будет собрать собственный стартер пак, в котором и языки реализованы, и авторизация, и редиректы правильные после авторизации, основанные на сессиях. Должно быть полезно.
Хмм в таком случае интересно, надо будет посмотреть, хотя меня и zend-овские классы очень радуют.

насчёт FreakAuth, да помнится тоже краем глаза посмотрел и сразу понял, что она мне не подойдёт.
Подсветите сорцы, пожалуйста.
приду домой попробую может хайлайтер какой посоветуете?
спасибо подсветил, ни чего так удобно ))
О боже. Я себе мозг сломал, наблюдая как CodeIgniter создаёт объект, инклудит модули и передаёт параметры. Может, конечно, так и надо делать, но у меня другие представления. Хотя, конечно, может стоящая вещь.
Поясните пожалуста, что вы имели в виду? Я согласен архитектура у CI не идеальная, но в принципе достаточно понятная, и мозг там ломать особенно не получится(ИМХО)
Супер объект - Один большой синглетон а остальное всё подключается, на мой взгляд подход себя оправдывает.
Мнение, которое может не совпадать с общепринятым.

Например. Как может нравиться конструкци вида:
$this->validation->set_message('_check_login','Bad username or password.');
Да, всё понятно.
Однако, моя Zend Studio for Eclipse не может мне сказать какого типа поле validation. Т.е. IDE не знает что это за класс такой и какие у этого класса свойства/методы. Значит я должен помнить все(!) свойства/методы этого класса. Не очень облегчает жизнь программисту, не так ли?

А вот ещё.
$this->load->library('validation');
Тоже всё понятно. И опять же здесь всиле предыдущее замечание. Да плюс ко всему, знаете где он будет искать библиотеку 'validation'? Во многих местах.

А как вам урлы вида
http://my_site.my/subjects/some_class/messages:add
Здорово не правда ли? А потом этот запрос начинает мощно парситься. Из него начинают выделяться "сегменты", части до ":" и после него.

Видимо для работы с данным фреймворком нужно "другое" мышление.
Если у него есть какие-то заметные плюсы, то напишите об этом.
хорошо ответили основательно, попробую ответить.

1.Итак зенд студио и авто-дополнение, проблема не столько в архитектуре, а скорее в отсутствии phpdoc

2. ну опять первый пункт, а насчёт где будет искать посомотрите метод _ci_load_class класса СI_Loader так-ли уж много мест?

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

4. мышление, на мой взгляд любой фреймворк накладывает свой отпечаток на мышление, по этому и выбирать надо то что подходит лично тебе, и не будет тебя сковывать. выбора славо богу предостаточно.

Ну и на последок плюсы:
1. низкий порог вхождения - обучить нового человека можно за 2-3 дня.
2. отличная документация - почти всё по разложенно по полочкам с примерами.
3. сравнительно высокая быстродейтелность - я не говорю что лучшее, но у многих выигрывает.
4. легкая интеграция со сторрониими приложениями

Вот как-то так ))
Нифига подобного! Нельзя phpDoc-ом сделать так, чтобы после
$this->load->model('megamodel');
$this->megamodel->[Ctrl+Space]
выпадал автокомплит методов класса megamodel
А вот и можно.

@property CI_Uri uri

И NetBeans 6.5 прекрасно поёмет, что это такое.
Если знаешь английский, то можешь почитать по подробнее как более меннее удобно организовать автокомплит в NetBeans
www.mybelovedphp.com/2009/01/27/netbeans-revisited-code-completion-for-code-igniter-ii/
Сказать точно, сработает ли это в Eclipse, я не могу, так как им не пользуюсь.

А если ты не веришь, что такой тег существует тогда прошу сюда
manual.phpdoc.org/HTMLSmartyConverter/PHP/phpDocumentor/tutorial_tags.property.pkg.html

Никогда не утверждай то, чего не знаешь. Как говорил мне мой преподаватель, если ты не нашел, это не значит, что этого нет. Совершенствуйся, учись, а не демонстаритво утверждай, что «Нельзя», а что «Можно». Надеюсь ты адекватно воспримешь эту критику.
Ну если на гоночную машину(CI) посадить слона(ZF)
она перестанет быть гоночной машиной.

Базовый контроллер расширяется самописным БЫСТРЫМ кодом.. а не слонами.. :-)
гм, а вы не в курсе что, ZF тем и хорош что, себя всего не тянет, а позволяет работать с отдельными классами?В примере видно, что в данном случае подгружаются толькоу те классы которые нужны для списков доступа. Можете замерить сколько времени занимает, загрузка с ним и без и будете приятно удивленны.

Что касается быстрого самописного кода, то я например почти всегда отдам предпочтение хорошо задокументированной, проверенной, библиотеке, а не странным функциям которые местный гуру сваял на коленке. Опять же напишите мне быстрый самописный код который будет без проблем расширяться и позволит реализовать списки доступа с той же гибкостью.
разве функ-я в хелпере init_roles() не должна что-то врернуть? потипу return $acl;
Вот и я думаю, косяк. init_roles() должна возвращать return $acl;
звиняете, исправли, именно $acl она и возвращает
Ошибка, надо не /system/application/libraries/My_Controller.php, а /system/application/libraries/MY_Controller.php
Под виндой это монопенисуально не зависит от регистра, а вот под *nix системами, такую вольность допускать нельзя.
собственно «My» в данном случае настраиваемый префикс, как хотите так и называете ))
Так как про настройку ни слова, то подразумевается настройка по-умолчанию.
Нормальный код, только как уже высказались Zend тянуть хоть и по отдельности тяжко, да и полно «родных» ACL было на сайте, сам пользуюсь свой правда.

И еще меня коробило одно слово в коде, но встречается часто Priviledge как-то не по английски, словно испанское что-ли, имхо вариант privilege или rights было бы приятнее.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации