Рубрика «php» - 231

Введение

На определенной стадии изучения серверного программирования мне захотелось написать свой простенький фреймворк. Я рассчитывал, что это поможет более глубоко понять идеологию MVC и Zend Framework в частности. Когда дело дошло до части представления и генерации html я вспомнил о паттерне Компоновщик (Composite pattern). Возможно я несколько исказил его применение, но мысль пошла оттуда.
Читать полностью »

Всем привет.
Я хочу поделиться с вами идеей написания подобия информационных виджетов на PHP.
Суть заключается в том, что средствами PHP легко граббить или просто получать информацию из интернета (+ личные предпочтения этому языку), после чего эту информацию можно вывести, используя утилиту notify-send, красиво и лаконично в правый угол монитора.

Скажу сразу, что на новаторство я не претендую. Возможно, данный метод может показаться многим довольно глупым, но мне, например, проще посмотреть в угол монитора, чем забивать рабочий стол всякими скринлетами, конки и прочим.
В качестве примера создадим виджет погоды, на основе данных с openweathermap.com.
Читать полностью »

Предыстория такова. Есть на некоем ресурсе флеш-виджет которые выполняет какие-то операции с пользовательским контентом. В моем конкретном случае, это фотографии. Задача стояла следующим образом. Необходимо собирать статистику показов с внешних ресурсов, т.е. сколько раз и где флешка засветилась на экранах пользователей. задача так же усложнялась и тем, что по сути показы должны были учитываться не самой флешки, а меняющихся в ней фотографий. Если же вам так же понадобится учитывать показ контента внутри флеш, то, увы, прийдется обратиться к флешеру, сваявшего этот виджет. Зачем, я объясню позже.
Читать полностью »

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

В основном все кандидаты делятся на две большие группы.

Первая группа. Кандидаты, в резюме которых содержится опыт работы, интересы, сильные стороны, но не заявлен какой-либо статус или оценка своих знаний. На просьбу оценить свои знания обычно просят задавать конкретные вопросы, т.к. не во всех областях считают себя знатоками. Ответы обычно по существу, иногда в стиле «здесь можно поспорить о терминологии» или «я могу минуту подумать?» К сожалению, таких кандидатов не так много. Говорить с ними интересно, собеседование проходит в форме диалога, а не экзамена. В итоге такое собеседование приносит пользу и новые знания всем участникам.
Читать полностью »

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

С недавних пор, примерно год назад, перед нашей командой стояла задача выбора PHP фреймворка для реализации «серьезных» проектов. Почему в итоге выбрали Kohana, я уже и не помню, скорее всего интуитивно, подкупившись на его простоту, легкость и не высокий порог входа. На тот момент текущая версия была 3.0 и мы полные энтузиазма вгрызлись в документацию.

В любом «серьезном» проекте перед разработчиком встает задача генерации уменьшенных копий загружаемых пользователем картинок. Почитав различные HOW TO, мы решили использовать генерацию превью при запросе изображения через url.
Читать полностью »

В свое время озадачился вопросом — как защитить страницы сайта от повторной отправки данных формы во время обновления страницы (если перед этим была отправка, естественно).
Каждый веб-мастер и разработчик наверное знает, что если на сайте вы нажали кнопку «отправить», заполнив какую-либо форму, то после отправки, если попытаться обновить страницу браузер выдаст сообщение с подтверждением повторной отправки.
В некоторых моментах это бывает недопустимо. Например, в случае элементарной формы обратной связи. Когда пользователь заполнил форму и отправил сообщение, а потом по какой-то ему одному известной причине обновил страницу, письмо ушло снова. Это может, конечно, и не такой фатальный случай, просто как пример. Все гораздо болезненнее, например, при отправке заказа в интернет-магазине.
Так вот задался вопросом поиска решения этой проблемы и понял, что решение только одно: использование перенаправления после отправки формы header (‘location: адрес’). Т.е. все просто – после отправки вызываем перенаправление (можно даже на ту же страницу) и все! Обновление страницы будет чистым, без всяких заполненных POST-ов и GET-ов.
Читать полностью »

Я предлагаю некоторый workflow обновления зависимостей в Git репозитории с помощью Сomposer. Проект основан на Symfony и все зависимости хранятся в папке vendors. Я уверен, что версия зависимостей всегда должна соответствовать версии кода на момент его написания, и обновлять зависимости нужно централизованно, т.к с проектом работают много людей.
Однако, Сomposer подразумевает использование Git submodules, то есть все скачанные зависимости представляют собой Git репозитории, об обновлении которых каждый пользователь должен заботиться самостоятельно.
Читать полностью »

Не так давно, Никита Попов, один из активистов движения «ЗА PHP», опубликовал в своём твиттере сообщение:

It very much looks like PHP 5.5 will have `finally` t.co/Dy93CZaR

(Оригинал тут twitter.com/nikita_ppv/status/232930291625369600)
Читать полностью »

Фреймворк для автоматического тестирования PHP проектов Codeception обзавелся первым серьезным апдейтом. Пришлось перелопатить всё ядро, всё поломать, всё починить и сделать это так, чтобы не сломать обратную совместимость. Как результат, теперь в тестах можно использовать любой PHP-код, а не только сценарий, добавилась возможность находить элементы по XPath, а также появилась возможность использования модулей Codeception в тестах PHPUnit.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js