В этой статье мы расскажем, каким образом мы организовали работу наших сайтов в одном проекте на фреймворке yii.
В первой части приведем немного теории о том, в каких случаях такое может потребоваться и что для этого нужно.
А во второй части приступим к технической реализации.
Читать полностью »
Рубрика «php» - 217
Как развернуть несколько версий сайтов на одном инстансе YII
2012-11-09 в 7:20, admin, рубрики: php, web-разработка, yii, Блог компании «Alawar Entertainment», Веб-разработка, метки: PHP, web-разработка, yiiОт технаря к топ-менеджеру [2-я редакция]
2012-11-07 в 22:07, admin, рубрики: html, php, python, карьера, карьера программиста, карьерный рост, работа, топ-менеджмент, метки: карьера, карьера программиста, карьерный рост, работа, топ-менеджментОт автора.
Выкладываю вторую редакцию своей истории. Она является переработанной и дополненной версией предыдущей работы, в следствие отсутствия корреляции действительности и складывающихся у многих читателей представлений. Так же убраны названия компаний и имена людей, т.к. пост, я уверен, снова соберет громадное количество негатива со стороны завистников и просто любителей потрепать языком вместо реальных дел, а так же желающих повысить свою популярность некоторых бывших коллег. В связи с этим, упоминание некоторых имен и мое доброжелательное к ним отношение может негативно сказаться на репутации этих людей.
Читать полностью »
Фичи, применимые в Yii, которые использую я
2012-11-07 в 16:21, admin, рубрики: ajax, php, yii, кеширование, логи, транзакции, метки: ajax, PHP, yii, кеширование, логи, транзакцииЗа долгое время работы с Yii Framework накопилось некоторое количество полезного опыта. Хочу им поделиться с читателим. Всё что ниже написано — плоды рефакторинга и трезвого взгляда на код.
То, о чем я расскажу под катом:
- Открытие одной и той же странички: через ajax-запрос (без layout) и обычное открытие странички вместе с layout
- Кеширование моделей без кода в каждой модели
- Как сделать логирование логики с минимальным кодом
- Как обернуть всё в транзакции с минимальным кодом
- Как сделать так, чтобы на каждом сервере (с экземпляром приложения) не менять файл основного конфига приложения. Упрощаем деплой
Работа с API Яндекс.Вебмастер
2012-11-07 в 14:01, admin, рубрики: api яндекс, php, Веб-разработка, Яндекс API, яндекс.вебмастер, метки: api яндекс, PHP, яндекс.вебмастерКаждый, кто отслеживает изменения отношения Яндекса к его сайту, знает о таком полезном сервисе Яндекса, как Яндекс.Вебмастер, но не многие знают, что сейчас появилась возможность автоматизировать этот процесс при помощи взаимодействия с API.
Т.к. я занимаюсь и разработкой и последующим продвижением сайтов, а продвигаемых сайтов довольно много, я сразу же уцепился за возможность автоматизировать процесс получения статистики с Яндекс.Вебмастера.
Во-первых, мы получаем все данные, даже если забыли это сделать или на это не было времени, ежедневно, ежечасно или еще чаще.
Во-вторых, работая через API, мы можем создать свой интерфейс просмотра данных, сделав его более удобным для себя.
Хотя документация по данному API на Яндексе существует, и даже снабжена примерами, лично я не смог «с разбегу» разобраться, что к чему. Поэтому, если вам также интересна эта тема, прошу под кат.
Читать полностью »
Использование xslt-шаблонов в реальных проектах
2012-11-07 в 10:50, admin, рубрики: php, xslt, метки: PHP, xsltВ статье вы не найдёте сравнительных тестов шаблонизаторов. Зато найдёте информацию об использовании xslt в качестве шаблонизатора на реальных проектах. Рассмотрены возможности именованных шаблонов, использование шаблонов-функций, справочников.
1. Структура проекта
Обычно страница сайта состоит из нескольких общих блоков (меню, футер, ...) и контентной части, которую для общности будем называть основным блоком. Все эти блоки размещаются внутри некоторого индексного шаблона, который знает в каком месте какой блок отобразить: меню должно быть вверху, основной блок в центре, а футер внизу.
Получаем следующую структуру
/themes - здесь раполагаются все шаблоны
/themes/index/main.xsl - индексный шаблон
/themes/models/user.xsl - именованные шаблоны, которые относятся к модели пользователя
/themes/inc/functions.xsl - именованные шаблоны-функции
/themes/blocks/footer.xsl - шаблон футера
/themes/blocks/menu.xsl - шаблон меню
/themes/cabinet/main.xsl - шаблон основного блока главной страницы кабинета пользователя
Контроллер главной страницы кабинета пользователя работает следующим образом:
- получает данные для основного блока, обрабатывает их с помощью /themes/cabinet/main.xsl и результат (готовый html) помещает в итоговый xml
- аналогично обрабатывает данные для других блоков (меню, футер) и результат помещает в xml
- итоговый xml, в котором находятся данные всех блоков, обрабатывается с помощью индексного шаблона /themes/index/main.xsl и результат отдаёт пользователю.
Создаем модуль «Новая почта» для Magento (часть 1)
2012-11-07 в 9:14, admin, рубрики: ecommerce, Magento, php, Веб-разработка, новая почта, электронная коммерция, метки: ecommerce, Magento, PHP, новая почта, электронная коммерция Меня уже не один человек просил написать модуль для самого популярного грузового перевозчика Украины “Новая почта”. Дело это не на один час, поэтому руки никак не доходили. Но недавно я подумал, что если идея востребована, то почему бы не сделать что-то полезное для сообщества, а именно:
1. бесплатный модуль “Новая почта” с открытым кодом для Magento;
2. статью в нескольких частях с подробным описанием процесса.
Статья ориентирована на новичков в Magento, но, возможно, будет интересна и опытным разработчикам. Все исходники можно найти на GitHub: github.com/alexkuk/Ak_NovaPoshta/, они дополняются по ходу разработки.
Итак, начнем с постановки задачи. Модуль должен выполнять следующие функции:
1. добавить новый метод доставки в Magento;
2. настройки метода должны позволять задавать различную стоимость доставки для различного суммарного веса посылки (как в методе доставки Table Rates);
3. хранить и синхронизировать с Новой Почтой базу складов;
4. выводить склады Новой Почты в удобном для выбора виде на шаге Shipping Method оформления заказа, по умолчанию выводить только склады в городе пользователя;
5. добавить возможность отслеживания посылки в панель пользователя.Читать полностью »
Отдача мелкой графики
2012-11-07 в 4:20, admin, рубрики: image, javascript, php, sqlite, Веб-разработка, Клиентская оптимизация, метки: image, javascript, PHP, sqliteХоливары про то, где хранить картинки – в базе или в файловой системе – штука не редкая даже для Хабра. Однозначного подхода тут в общем нет и быть не может, но если посмотреть на ситуацию с позиции оптимизации выдачи контента, то разумный компромисс становится чуть более очевиден, на мой взгляд. Читать полностью »
Реализация шаблона проектирования Singleton на PHP 5.4
2012-11-06 в 17:21, admin, рубрики: framework, php, php 5.4, singleton, software engineering, метки: framework, php 5.4, singleton, software engineering Казалось бы, из всех шаблонов проектирования что может быть проще всем известного синглетона. Во многих классических примерах реализации на разных языках программирования она может занимать всего пару десятков строк а того и меньше.
Так получилось, что я реализую этот шаблон вот уже второй год начиная с первого выхода PHP 5.3 в 2009 году. В то время у его предшественника версии 5.2 не было позднего статического связывания и для создания экземпляра класса в метод приходилось передавать его имя, что казалось мне архинеудобным.
С выходом PHP 5.4, взглянув еще раз на старую реализацию и на новые возможности языка, я переписал этот шаблон еще раз получив — как мне казалось тогда и кажется сейчас — конечный вариант.
Подробности реализации ниже.
Читать полностью »
Выполняем PHP прямо в браузере
2012-11-06 в 10:13, admin, рубрики: php, phpunit, service, testing, Веб-разработка, тестирование, метки: PHP, phpunit, service, testing, тестНа этой неделе CIBox Service обзавёлся поддержкой PHP версии 5.2, 5.3 и 5.4
Коротко о главном — CIBox это сервис позволяющий выполнять серверные языки прямо в браузере(на самом деле выполняются они на сервере но результат выводиться с потрохами в браузере).
В результате имеем тот-же jsFiddle но для таких языков/фреймворков как PHP, Ruby, Python, Node.js
Подробнее о самом сервисе тут и тут.
А про поддержку PHP подробнее под катом
Библиотека для авторизации через Хабрахабр
2012-11-06 в 3:24, admin, рубрики: api, php, авторизация, Алгоритмы, хабрахабр, Хабрахабр API, метки: api, PHP, авторизация, ХабрахабрДоброе утро всем, кто уже читает Хабрахабр!
Работая над «Клубом анонимных Дедов Морозов» для Хабра, нам пришлось решить проблему с авторизацией пользователя через Хабр. На Dirty пользователю предлагалось разместить у себя в профиле особую ссылку, наличие которой проверялось их сервером. Мы же решили пойти другим путем и максимально упростить авторизацию для человека, решившего принять участие в акции.
Хотя в итоге библиотека HabraAuth, о которой пойдет речь в топике, не была использована, но она использует тот же принцип авторизации, что и на habra-adm.ru — пользователь вводит свой ник на Хабре, и с аккаунта почтового робота или с аккаунта разработчика ему приходит особая ссылка по Хабропочте, перейдя по которой он и подтверждает владение своим аккаунтом.
Для конечного пользователя при использовании HabraAuth авторизация выглядит и того проще: он вводит свой ник, жмет «Войти» и сервер перекидывает его в Хабропочту, где ему остается только нажать ссылку «Войти» еще раз.