+7.92
12 читателей, 13 топиков

Каталог расширений yii1 и yii2 - yiigist.com

Приветствуем, уважаемые читатели!

Хорошие новости для тех, кто ждёт каталог расширений для yii2. Не дождавшись официального сайта, наша команда рада представить свой вариант — yiigist.com.

На данный момент каталог поддерживает только пакеты yii 1.* и yii 2.* опубликованные в packagist.org и расположенные на github.com. Это должно покрыть 80% всех потребностей.

Если вам потребуется новый функционал, или вы встретите ошибку на сайте, смело пишите в форму обратной связи или на почту support@yiigist.com

Надеемся, наше решение вам понравится!

С уважением, команда PHPTime. Приятного кодинга!

FAQ: Как заставить IDE автокомплитить scope методы в ActiveRecord Yii2

В последнее время часто стали задавать вопрос — как же заставить IDE дополнять предустановленые в модели scope методы. Для начала посмотрим, как разработчики фреймворка предполагают работу со scopes.

Вкратце. В модели создается статический метод, который дергается классом ActiveQuery черезе магический метод __call. Но эти методы не подхватываются IDE (на примере PhpStorm 7).



Читать дальше →

Релиз Yii 1.1.14

Yii frameworkДолгожданный релиз Yii Framework 1.1.14 состоялся! Среди изменений есть много интересного. Например класс для хеширования и проверки пароля или поддержка redis в качестве сервера хранения кеша.

Обзор основных фич на хабре.
Полный changelog.
Забираем на Github.

Отправка email уведомлений в Yii2

Добрый день многоуважаемое сообщество!

Сегодня я хотел бы рассказать о новом расширении для отправки различных email уведомлений в yii2. Это простая обертка над PHPmailer. Суть её заключается в работе с двумя объектами — Postman (почтальон) и Letter (письмо).

Читать дальше →

Поведение и события

Оригинал: Behaviors & events

Эти функции обеспечивают безграничные возможности и невероятную гибкость для программирования, но в имеющейся официальной документации приведено лишь несколько примеров их использования. Это создает дополнительные трудности для понимания их внутреннего строения и предъявляемых к ним требований.
Отмечу, что События и Соведение делают в основном одни и те же вещи. Вы можете прицепить Поведение и обработчик Событий к компоненту, чтобы изменить Поведение компонента.

Читать дальше →

Как разобраться в иерархической системе RBAC

Оригинал: Getting to Understand Hierarchical RBAC Scheme

Authentication and Authorization — это хороший учебник, в котором, помимо прочих тем, описываются основные аспекты реализации иерархической системы RBAC в Yii. Но сколько я ни читал этот толковый учебник, я не мог понять, как именно работает иерархия. Я нашел, как определить авторизацию иерархии, как оцениваются правила управления, как настраивается authManager, но почти ничего не обнаружил о том, как строить свою иерархию, в какой последовательности проверяются ее узлы, когда проверка останавливается, и каков будет результат проверки.

У меня ничего не оставалось, кроме как начать самому копаться в коде Yii. В этой статье я хочу представить вашему вниманию свои выводы по данному вопросу. Отмечу, что разобраться в коде Yii не представляет особых сложностей, так как он хорошо структурирован. Каждый может это сделать, но следующая информация поможет вам сэкономить время, особенно если вы новичок в работе с Yii-фреймворком.

Я должен сказать, что понять смысл статьи было бы намного проще, если бы вы ознакомились с вышеупомянутым учебником. Особенно начиная с темы Role-Based Access Control.
Давайте рассмотрим пример иерархии, который приведен в учебнике (здесь показано, как система безопасности может быть построена для некоторых блогов):

Читать дальше →

Руководство для проектирования хорошей схемы базы данных

Оригинал: Guidelines for good schema design

Практически все Yii-приложения построены на базах данных. И хотя фреймворк Yii очень
гибок в плане взаимодействия с базой данных, некоторые решения призваны сделать разработку еще
проще и удобней.

Первый и наиболее важный момент заключается том, что Yii-приложения широко
используют шаблон ActiveRecord. Исходя из этого, все конструктивные соображения
направлены на оптимизацию такого использования, а не на человека, который будет
составлять сложные SQL-запросы. В самом деле, многие из проектных решений напрямую
конфликтуют с передовой практикой для создания дружественных SQL-схем.

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

Это особенно верно, в случае если вы просите о помощи на форумах или на канале #yii:
использование неподходящих имен, которые не отражают смысла, порождает много
вопросов и уточнений. Вы получите меньше справочной информации, чем могли бы.

Согласованность играет очень большую роль.

Тем не менее, это всего лишь рекомендации, а не правила, и ваш код будет работать, даже
если вы не последовали им. Принимая рекомендации, вы облегчите себе жизнь.

Читать дальше →

Создание своего правила валидации (validation rule)

Оригинал: Create your own Validation Rule

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

Быстрый способ

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

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

Прежде всего в вашем классе модели вам придется добавить две константы:
const WEAK = 0;
const STRONG = 1;


Читать дальше →

Поиск и сортировка связанных моделей в CGridView

Оригинал — Searching and sorting by related model in CGridView

Допустим, у нас есть две модели и отношения между ними:
class Author extends CActiveRecord {
...
}
 
class Post extends CActiveRecord {
...
    function relations() {
        return array(
            'author'=>array( self::BELONGS_TO, 'Author', 'id_author' ),
        );
    }
...
}
в списке сообщений, вы хотели бы показать имя автора в колонке, позволить сортировать по этой колонке и, вероятно, дать возможность отфильтровать по подстроке имени автора. Лучшее решение (на мой взгляд), чтобы обеспечить все эти возможности:

Читать дальше →