Добавляем редактирование many-to-many в Yii2

27.11.2015

В фреймворке Yii2 есть инструмент gii, который умеет генерировать модели на основе структуры БД, а также контроллеры и формы для CRUD. 

Но сгенерированный CRUD (англ. create, read, update, delete — «создание, чтение, обновление, удаление») не делает редактирование связей между объектами. В этой небольшой заметке мы разберемся как это можно добавить.

Frontend разработка с Laravel, как сделать "бесконечную" прокрутку

01.09.2015

Laravel logobower logogulp logo

Продолжаем разрабатывать блог на Laravel 5, немного затронем вопросы Frontend в задаче "Бесконечной прокрутки". Это подгрузка нового контента по мере прокрутки страницы пользователем.
Будем использовать bower (менеджер пакетов для фронтенда) и воспользуемся gulp чтобы наши скрипты собирались в 1 файл и минимизировались на лету в процессе разработки. 

Простой блог на фреймворке Laravel 5

25.08.2015

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

Много лет назад я написал CMS для своего блога на чистом php с БД на файлах, глобальная паутина не стоит на месте и уже давно пришло время все переделывать. 
Тратить много времени на блог не хочется, но и в очередной раз использовать WordPress тоже нет желания, захотелось поиграться с Laravel и в результате получилась эта статья и новая CMS для блога.  
То что Вы сейчас видите на сайте - уже новая версия, сделанная на нем.  
В этой статье я опишу как начать разрабатывать блог на laravel 5 c MySQL. 
Сделать блог на этом фреймворке очень просто, но не на столько, чтобы у меня нашлось время сделать полноценный туториал от начала до конца. Я думаю это и не нужно, главное начать, а дальше пойдет)
Если хотите полностью код со всеми коммитами, ищите у меня на визитке ссылку на аккаунт на github, подписывайтесь, клонируйте, форкайте.

Заливка WSO через adminer в CMS Cotonti

11.07.2015

Неприятная ситуация: попался недобросовестный заказчик, который после приема работы вместо оплаты сменил пароли и перестал отвечать в skype. У меня крайне редко такое бывает, но вот попался халявщик, я прождал значительное количество дней ожидая ответа, а ответа от него больше нет.
Доступ запрещен
Чтобы не допустить такой несправедливости к себе, было принято решение залить на сайт шелл (WSO 2.5), это утилита, которая предоставляет веб-интерфейс для удаленной работы c сайтом на уровне операционной системы (на правах www-data пользователя). Как это получилось сделать без доступа к FTP или SSH - читаем далее.

Простой парсинг сайта из консоли chrome

01.03.2015

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

На этом сайте Я обратил внимание на следующие моменты: вся информация, которая нам нужна, размещена на одной странице, на сайте подключена jQuery, все ссылки категорий верхнего уровня имеют класс catName. Я решил что не стоит писать парсер на php с регулярными выражениями, а можно воспользоваться операциями с DOM от jQuery, которая уже и так есть на сайте.

Набросал десяток строк на javascript:

код на javascript

- я хочу вывести все категории и их подкатегории в виде php (объявленного массива на php), который можно будет потом вставить в любом удобном месте проекта, сохранить данные в БД и убрать из кода.

Установка на Linux нескольких версий PHP

03.11.2014

Не секрет, что в PHP не соблюдается обратная совместимость. Язык постоянно развивается, добавляются новые плюшки, плохие старые библиотеки и функции выбрасывают. Актуален вопрос тестирования или разработки на разных версиях пыхи.

Рассмотрим один из способов. Нам поможет PHPBrew.
PHPBrew MAC

В функционале утилиты PHPBrew: построение множества версий php с настраиваемым набором расширений внутри домашней директории (без root доступа), компиляция php модуля apache для разных версий отдельно, простое переключение версий (без root доступа).
Смотрите дальше как избежать некоторых трудностей в работе с этим полезным инструментом.

Обновление программы my eyes

17.09.2014
Добавил пару новых функций в свою программу, которой пользуюсь каждый день.
Программа решает 2 задачи: во-первых оберегает глаза от перенапряжения и синдрома сухости глаза, во-вторых считает время работы для почасовой оплаты.
На сегодня главное окно программы такое:
Главное окно

Добавлен флажок для отключения напоминания, например на время просмотра фильма вечером.
Также добавлены 2 опции, которые можно передать в командной строке, если ставите программу на автозапуск.
Окно терминала

Дальше об остальных элементах программы. Есть виджет и ...

Вывод сайта из под АГС на реальном примере

02.07.2013
yandex
Предистория:
Поступил заказ на модификации нескольких интернет-магазинов,
а еще на вывод одного из них из под фильтра Яндекса.
В копирайте движка следующее:

# ... Скрипт интернет-магазина
# Copyright (c) 2007 СОЮЗ ВЕБ ГРУПП

Код движка соответствует его возрасту (6 лет) и требует версию php 4+. Стиль оформления тоже ожидает желать лучшего, но для Яндекса это уже не важно. Многолетний магазин, который кормил своего владельца, попал по фильтр и выпал из выдачи Яшки.

Пример десклета для Cinnamon - обратный счетчик до дедлайна

30.06.2013

Многие пользователи Linux Mint и Fedora, которые выбрали графическую оболочку Cinnamon, уже знают, что начиная с новой версии 1.8 оболочка поддерживает (помимо аплетов рабочего стола) десклеты (Desklets).

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

К сожалению, интересных десклетов пока написать не успели и там их всего 3 калеки.

У меня появилась идея повесить себе на рабочий стол счетчик обратного отсчета дней до похода и я решил сделать это, как мне кажется, самым естественным и ресурсо-экономным способом - десклет.


Событие до которого отсчет может быть любым, например дедлайн. Читайте дальше если интересно...

Автоматизируем операции с торрент-клиентом Transmission, очередь файлов

30.04.2013
Допустим Вы подсели на какой то сериал.
Это очень плохо, возможно Вам лучше обратиться к психотерапевту ;)
Но пока Вы этого не сделали, если у Вас не мега быстрый интернет, то вероятно Вы догадаетесь качать не весь сезон сразу, а по серии (скачал, посмотрел, скачал еще).
Со мной приключилась такая беда, еще и скорость раздачи меньше 50кб/сек, но так как мне стало лень клацать по настройкам торрента, добавляя серии по одной (одна серия качается не менее нескольких часов), я посмотрел на возможности автоматизировать этот процесс.
Так как гугл помог найти готовый класс TransmissionRPC, вопрос автоматизации оказался менее трудоемким, чем написать этот пост.
Класс можно взять по адресу http://code.google.com/p/php-transmission-class/source/browse/trunk/class/TransmissionRPC.class.php?r=14
А мои игры с ним на гитхабе https://github.com/Hukuta/transmission/blob/master/index.php

Теперь расскажу что получилось.
У нас есть торрент клиент с встроенным веб-клиентом.
transmission
Включаем его и открываем мой скрипт в браузере,
там должен сразу появиться список добавленных торрентов.

Как попасть на хабр

08.02.2013

habr

Попробовал написать на хабрахабре, опубликовал пост про сравнение производительности различных способов получения содержимого страниц сайтов (curl, php curl, php socket, python pycurl).
Перед этим прочитал правила хабра, что не маловажно.

Через пару дней после публикации в песочницу, мне на почту пришел инвайт. Пост вылез из песочницы, у меня появился аккаунт с правами публикации и комментирования.

...

Автоматический вывод с Sape, скрипт

09.01.2013
sape brain
Очередной полезный для многих скрипт.
Обновлять на сайте страницу скриптов мне давно уже лень,
поэтому скрипт будет только на gitHub.
Скрипт каждый день (или чаще) заходит на sape.ru,
проверяет достиг ли баланс заданной суммы,
и в этом случае создает заявку на вывод средств на WebMoney.

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

IDE для PHP: phpStorm вместо NetBeans

23.12.2012
После конференции ThinkPHP посмотрел в сторону IDE PhpStorm. До этого использовал для PHP NetBeans.
Был приятно удивлен коммерческой PhpStorm от jetbrains, в этом посту расскажу что именно я нашел для себя хорошего. Может Вы тоже подумаете использовать ее или найдете что то новое, не смотря на то, что уже ею пользуетесь.
loading phpstorm
Я сам только начинаю ей пользоваться и не буду сейчас углубляться в огромную кучу функционала, скажу только про вещи, которые прям таки не хватало.

Мой отчет с ThinkPHP 5

01.12.2012
Вчера был на конференции ThinkPHP (это в Харькове), было очень интересно, ни разу не пожалел что сходил.
На http://vk.com/thinkphpcomua скоро могут появиться видео и фото с конференции.
elephand php

думай php

Докладчики: experts

experts alive

Конференция была посвящена 2 вопросам:
  • что должен знать PHP разработчик (не привязываясь к уровням джун, мидл, сеньйор)
  • стоит ли писать свой PHP Framework

Установка веб-сервера Zend Server на Windows

26.08.2012
Захотелось посмотреть как работает Zend Server на Windows. В этом скринкасте представляю процесс установки.
Внизу будет ссылка на скачивание версии, где я убрал триальное ограничение (насколько успешно пока точно не знаю).
Версия сервера 5.6. Вы уж извините, но на виртуалке только Windows XP, семерки свободной не было. Это не должно сильно повлиять. Перейдем к установке:

Запуск установки
...