Подсоединяем не объявленную таблицу в Propel или Join Custom Table Propel
Целью статьи стало присоединение (join) не объявленной в схеме (schema.xml) таблице в propel2. Видимо редкий случай или просто недостаточно документации по данной Propel ORM.
Часто приходится комбинировать условия в запросе. Если в SQL это сделать легко, то используя ORM приходится изобретать велосипеды. ORM Propel позволяет это сделать без костыля через инструменты ->condition() и ->combine().
Рассмотрим сложный пример, чтобы можно было из него выделить много полезного для себя.
К примеру нам нужно в WHERE вставить вот такое условие:
Есть товары, который нужно выбрать из категории по такому принципу.
(A && B && C) OR D
A - (user) - создавший товар Юзер.
B - (price) - цена товара
С - (stock) - количество товара
D - (ignore) - флаг отвечающий за "выводить влюбом случае"
Пример реализации:
<?php
Products::create()
->condition('user', 'Products.User = ?', 10) // 10 - Id юзера
->condition('price', 'Products.Price > ?', 5000) // Цена больше 5000
->condition('stock', 'Products.Stock > ?', 0) // Количество больше 0
->combine(['user','price', 'stock'], 'and', 'u_p_s') // объеденяем условия в одно
->condition('ignore', 'Products.Ignore = ?', 1) // Если 1 то товар показывать в любом случае
->where(['u_p_s','ignore'], 'or') // Сравниваем 2 условия
->find();
Целью статьи стало присоединение (join) не объявленной в схеме (schema.xml) таблице в propel2. Видимо редкий случай или просто недостаточно документации по данной Propel ORM.
Подтянем в наш проект ORM Propel2 с помощью Composer. Рассмотрим смежные пакеты, которые нужны для Propel2.
Рассмотрим вариант создания простого проекта с MVС, который будет откликаться статическую ссылку в браузере, без управления $_GET параметрами. Ссылка будет разбиваться на путь к файлам и задействовать нужные контроллер, модель и view файл.
Иногда возникает нужда использовать фоновый процессы на Php. Рассмотрим пример использования такой возможности в связке Gearman + Php.
Для нормальной работы воркера Gearman требуется постоянная его работа в зацикленном режиме. Со стороны сервера это можно реализовать одним запросом через консоль Cli. Рассмотрим роботу на простом примере.
Разобравшись что такое Compser и для чего он нужен, следует разобраться как его использовать на сайте. В статье рассмотрим подключение библиотек подтянутых через Composer.
Установка MySQL 5.7 через Docker. Все действия будем производить на Ubuntu 14.04 c помощью docker-compose. Рассмотрим запуск, схему для compose и примеры подключения к созданному контейнеру MySQL.
После разработки какого-либо инструмента на PHP, становится вопрос, насколько созданный код ресурсный и какие элементы он затрагивает еще. Рассмотрим установку xhprof, настройку и рассмотрим способы работы с xhprof.