Материал в данной статье предназначен для разработчиков, которые уже имеют навыки работы с YII фреймворком. Опытным программистам материал может показаться неинтересным.
Статья написана для фреймворка версии YII 1.1.14. Под катом много текста с фрагментами кода.
Читать полностью »
Рубрика «yii» - 25
Yii — обмен опытом: модели
2014-02-14 в 22:42, admin, рубрики: active record, php, yii, Веб-разработка, ооп, метки: active record, PHP, yii, оопДайджест интересных новостей и материалов из мира PHP № 35 (26 января — 9 февраля 2014)
2014-02-09 в 22:18, admin, рубрики: composer, elePHPant, HHVM, laravel, phalcon, php, phpstorm, PSR, ReactPHP, symfony, yii, Zephir, Блог компании Zfort Group, Веб-разработка, дайджест, Новости, подборка, ссылки, метки: composer, elePHPant, HHVM, laravel, phalcon, PHP, phpstorm, PSR, ReactPHP, symfony, yii, Zephir, Веб-разработка, дайджест, новости, подборка, ссылки
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Читать полностью »
Дайджест интересных новостей и материалов из мира PHP № 34 (13 — 26 января 2014)
2014-01-26 в 19:27, admin, рубрики: composer, elePHPant, HHVM, laravel, phalcon, php, php 5.6, yii, Zephir, Блог компании Zfort Group, Веб-разработка, дайджест, Новости, подборка, ссылки, метки: composer, elePHPant, HHVM, laravel, phalcon, PHP, php 5.6, yii, Zephir, Веб-разработка, дайджест, новости, подборка, ссылки
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Читать полностью »
Введение
Всем привет, эта статья лежит у меня в черновиках уже год. Я все откладывал её на потом, когда будет побольше времени, но, в связи с скорым выходом yii2, я решил доработать её и выложить на обозрение читателя.
Вот уже как 3 года я работаю над одним очень крупным проектом в megaflowers. И, в какой-то момент разработки, когда классов стало слишком много, а их названия стали вида ContentDiscount
, ItemDiscount
, я понял, что надо с этим что-то делать, и решил ввести неймспейсы в наш проект. Ну, как говорится, гулять так гулять если вводить, то везде сразу, а не там чуть-чуть и там, а в остальных местах нет.
Читать полностью »
Пять моих «граблей» в разработке на PHP
2014-01-12 в 23:03, admin, рубрики: mvc, php, yii, ооп, Программирование, метки: mvc, PHP, yii, ооп, ПрограммированиеЗдравствуйте, уважаемые пользователи! В этом посте хотел бы поделиться своим личным опытом «наступания на грабли» во время разработки веб-приложений на языке программирования PHP. Текст будет интересен тем, кто хочет посмотреть на путь девелопера от «зеленого самоучки» до «профессионального разработчика», а также начинающим программистам, которые не против узнать о том, «как не нужно делать» и почему. Возможно даже кто-то вспомнит себя и улыбнётся. Возможно, кто-то просто улыбнётся с моего старого кода.
Все мое ознакомление с веб-разработкой начиналось в далеком 2009-м году с распечатанных непонятных и сложных справочников и руководств, а также ковыряния кода (очень плохого, кстати) open source CMS. Позже я начал использовать ООП и заботиться о «правильности», а ещё позже — замечательный фреймворк Yii, поэтому весь «хороший» код в посте будет демонстрироваться именно с использованием этого фреймворка.
Читать полностью »
Пример использования standalone actions в Yii2
2014-01-11 в 19:33, admin, рубрики: php, yii, yii2, Блог компании Topic, метки: yii, yii2При разработке сайта неотъемлемую часть занимает получение коллекции данных. Выборка по определённым условиям, пагинация. Каждый раз писать реализацию в контроллерах весьма занудно. Когда как можно один раз сделать расширяемую реализацию часто используемого функционала.
В данной статье будет приведен пример как при использовании функционала Standalone actions красиво организовать единообразную архитектуру, которую можно использовать во всех частях приложения.
Читать полностью »
Как я заставил работать API в Yiinitializr Advanced
2014-01-08 в 20:01, admin, рубрики: api, php, yii, yiinitializr, метки: api, yii, yiinitializr
В продолжение моего предыдущего поста о таком интересном инструменте как Yiinitializr, я решил ответить на вопрос о возможностях работы API, предоставляемых шаблоном Advanced. В рамках комментария или дополнительного пункта к прошлой статье материал уместить не удалось, поэтому всех, кого интересует данная тема, приглашаю под кат. В ней мы не будем касаться принципов проектирования правильной архитектуры API, а разберёмся как воспользоваться трудами ребят из 2amigos, которые дали нам возможность быстро (после прочтения статьи — точно быстро) развернуть API для наших проектов на Yii.
Способ реализации работы с API в Yiinitializr
API — программный интерфейс приложения, служащий для использования во внешних программных продуктах. Если мы хотим, чтобы возможностями нашего приложения могли воспользоваться другие разработчики в своих проектах, то без хорошо спроектированного API нам не обойтись. К сожалению, Yii первой версии не сможет помочь в этом деле. Вероятно, вам подойдет Yiinitializr, который решит часть вопросов, но, как мы знаем, отсутствие документации является серьезным препятствием.
Представим, что работа над нашим замечательным приложением закончена, работа API налажена, и уже появился первый разработчик, желающий воспользоваться возможностями нашей системы. По какому принципу будет строиться её использование?
Читать полностью »
Автоматическое тегирование кеша в Yii
2014-01-08 в 10:24, admin, рубрики: cache, php, tagging, yii, Программирование, метки: cache, PHP, tagging, yii Кеширование с тегами — инструмент, позволяющий точечно обновлять кеш при изменении тех или иных зависимостей.
К сожалению, разработчики Yii не сочли нужным внедрить этот инструмент в ActiveRecord, а стоило бы. Тем не менее, они дали нам возможность сделать это самим.
Реализация привязки тегов к моделям на основе зависимостей уже обсуждалась на хабре habrahabr.ru/post/159079/. Автору отдельная благодарность. Я буду использовать ее как основу, и дополню функциями для автоматической генерации тегов.
Читать полностью »
Создаем поведение (behavior) для Yii2
2014-01-07 в 11:33, admin, рубрики: behavior, php, yii, yii2, метки: behavior, yii, yii2Часто, а на самом деле практически всегда, при создании сайта необходимо, чтобы страницы сайта открывались не по id сущности в базе, а по текстовому идентификатору, назовем его slug.
post/view/1 => post/view/testovaya-novost
(из url'а стоило бы убрать и view, но урок не о том)
Самым примитивным путем можно создать в таблице post поле slug, в модели Post соответственно появляется новый атрибут, в представление (view) добавляем новый input, в который ручками вбиваем slug.
<?php
use yiihelpersHtml;
use yiiwidgetsActiveForm;
/**
* @var yiiwebView $this
* @var commonmodelsPost $model
* @var yiiwidgetsActiveForm $form
*/
?>
<div class="post-form">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field( $model, 'name' )->textInput( [ 'maxlength' => 255 ] ) ?>
<?= $form->field( $model, 'slug' )->textInput( [ 'maxlength' => 255 ] ) ?>
<?= $form->field( $model, 'content' )->textarea( [ 'rows' => 6 ] ) ?>
<div class="form-group">
<?= Html::submitButton( $model->isNewRecord ? Yii::t( 'app', 'Create' ) : Yii::t( 'app', 'Update' ), [ 'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary' ] ) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
Как связать Yii Framework и Doctrine 2 ORM?
2014-01-05 в 20:00, admin, рубрики: Doctrine ORM, Doctrine2, orm, php, yii, метки: Doctrine2, orm, PHP, yii
Мне очень нравится Yii Framework. Он быстрый, удобный, гибкий. Мне нравится, как реализован в нём паттерн ActiveRecord. Но бывают случаи, когда бизнес-логика, а, если быть точным, доменная логика, очень сложная и постоянно растёт и модифицируется. В таких случаях удобнее пользоваться паттерном DataMapper.
В тоже время мне нравится Doctrine 2 ORM. Это пожалуй самая мощная ORM для PHP, имеющая широчайший функционал. Да, возможно, она «тяжеловата» и замедляет работу приложения. Но начиная разработку, прежде всего стоит думать об архитектуре приложения, так как «преждевременная оптимизация корень всех бед»
Таким образом, однажды мне пришла в голову мысль связать 2 этих интересных мне инструмента. Как это было сделано, описано ниже.
Читать полностью »