Как стать автором
Обновить

Package Wizard — незаменимый помощник при разработке веб-приложений

Open source *PHP *Symfony *Yii *Laravel *

Не знаете с чего начать разработку своего приложения будь то библиотека, пакет, плагин, бандл или даже свой фреймворк? Или надоедает каждый раз копировать одни и те же файлы? Решение есть!

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 2.3K
Комментарии 1

Российское зеркало Packagist.org

PHP *

В России запущено зеркало Packagist.org: https://packagist.org.ru/

Если вы разработчик на PHP, то скорее всего используете в своих проектах менеджер пакетов Composer. При выполнении команд create-project, require, update, remove, Composer загружает из сети информацию о необходимых пакетах, а также об их зависимостях. Количество загружаемых json-файлов зависит от сложности используемых пакетов. Чем дальше вы находитесь от физического местоположения сервера packagist.org или его зеркал, тем больше времени требуется для разрешения зависимостей. Использование российского зеркала поможет ускорить вашу работу.

Читать далее
Всего голосов 13: ↑3 и ↓10 -7
Просмотры 1.5K
Комментарии 2

Исследователи безопасности нашли уязвимости в цепочках поставок PHP-репозиториев Packagist

Информационная безопасность *PHP *IT-компании

Исследователи безопасности из SonarSource нашли уязвимости в цепочках поставок PHP-репозиториев Packagist. Они утверждают, что злоумышленник может долго пользоваться брешами и закрепляться в системе, а также использовать бэкдор при каждом обновлении пакета. 

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 1.2K
Комментарии 0

Замена PEAR на Composer

PHP *
Думаю, большинство разработчиков, использующих PHP, уже в знают, что популярные проекты начинают отказываться от распространения через PEAR в пользу Composer (например PHPUnit и Symfony). Некоторые расстраиваются по этому поводу, дескать, теперь вместо однократной общесистемной установки того же PHPUnit, придётся включать его зависимостью в каждый проект. Совсем необязательно! Composer прекрасно умеет устанавливать пакеты для общего использования.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 11K
Комментарии 3

Quartz Composer: музыкальный куб

Разработка под iOS *
В состав Develop Tools под Mac OS входят несколько приложений и множество туловиню. Одна из них Quartz Composer. С ее помощью можно делать множество визуальных эффектов.
В этом тутореале я попробую объяснить как сделать, вращающийся куб, под звуки.
Читать дальше →
Всего голосов 7: ↑5 и ↓2 +3
Просмотры 4.9K
Комментарии 5

Composer — менеджер зависимостей для PHP

PHP *
Composer (getcomposer.org) — это относительно новый и уже достаточно популярный менеджер зависимостей для PHP. Вы можете описать от каких библиотек зависит ваш проект и Composer установит нужные библиотеки за вас! Причём Composer — это не менеджер пакетов в классическом понимании. Да, он оперирует с сущностями, которые мы будем называть «пакетами» или библиотеками, но устанавливаются они внутрь каждого проекта отдельно, а не глобально (это одно из основных отличий от старого-доброго PEAR).

Кратко, как это работает:
  1. У вас есть проект, который зависит от нескольких библиотек.
  2. Некоторые из этих библиотек зависят от других библиотек.
  3. Вы описываете в своём проекте те библиотеки, от которых непосредственно зависит ваш код.
  4. Composer находит нужные версии требуемых библиотек для всего проекта, скачивает их и устанавливает в папку вашего проекта.

При создании Composer авторы черпали идеи и вдохновение из аналогичных проектов: npm для Node.js и Bundler для Ruby.

Изначально он был спроектирован и разработан двумя людьми Nils Adermann и Jordi Boggiano, сейчас в проекте участвует более двадцати контрибьюторов, Проект написан на PHP 5.3, распространяется под лицензией MIT и доступен на github.

Первые коммиты были сделаны апреле 2011 года и на сегодняшний день Composer находится в стадии «alpha3». Однако, он уже достаточно стабилен и используется многими популярными PHP проектами (например, Symfony 2). Список проектов использующих Composer можно посмотреть на сайте packagist.org — это официальный репозиторий Composer пакетов. Кстати, на недавней конференции Devconf 2012 разработчик фреймворка Yii в своём докладе упомянул, что Yii2 скорее всего тоже будет использовать Composer.

В этой статье я кратко опишу основные возможности Composer и мы попробуем создать демонстрационный проект использующий Composer для загрузки необходимых библиотек. Все примеры будут доступны на github.com и bitbucket.org.

Читать дальше →
Всего голосов 73: ↑60 и ↓13 +47
Просмотры 395K
Комментарии 43

PHP гораздо лучше, чем вы думаете

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

Самая главная проблема всех этих статей в том, что люди, которые их пишут, застряли в старых временах PHP.
Либо это их не волнует, либо они не хотят признавать, но PHP эволюционирует очень быстрыми темпами, и как язык, и как сообщество.
Более того, PHP развивается гораздо быстрее, чем какой бы то ни было другой язык или платформа. Конечно, так было не всегда, но последние 5 лет были воистину потрясающими для PHP…

Читать дальше →
Всего голосов 231: ↑168 и ↓63 +105
Просмотры 40K
Комментарии 429

Дайджест интересных новостей и материалов из мира PHP за последние две недели №4 (03.11.2012 — 16.11.2012)

Блог компании Zfort Group Разработка веб-сайтов *PHP *


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 84: ↑71 и ↓13 +58
Просмотры 20K
Комментарии 15

Библиотека для работы с QIWI через SOAP

Платежные системы *PHP *
Так уж получилось, что мы решили у себя подключить прием платежей через QIWI. Сказано — сделано! Вот только в процессе разработки пришлось столкнуться с убогостью примеров кода от разработчиков киви:
Код сервера, принимающего запрос от киви
<?php
/**
 * На этот скрипт приходят уведомления от QIWI Кошелька.
 * SoapServer парсит входящий SOAP-запрос, извлекает значения тегов login, password, txn, status,
 * помещает их в объект класса Param и вызывает функцию updateBill объекта класса TestServer.
 *
 * Логика обработки магазином уведомления должна быть в updateBill.
 */

 $s = new SoapServer('IShopClientWS.wsdl', array('classmap' => array('tns:updateBill' => 'Param', 'tns:updateBillResponse' => 'Response')));
// $s = new SoapServer('IShopClientWS.wsdl');
 $s->setClass('TestServer');
 $s->handle();

 class Response {
  public $updateBillResult;
 }

 class Param {
  public $login;
  public $password;
  public $txn;      
  public $status;
 }

 class TestServer {
  function updateBill($param) {
  
	// Выводим все принятые параметры в качестве примера и для отладки
    $f = fopen('c:\\phpdump.txt', 'w');
	fwrite($f, $param->login);
	fwrite($f, ', ');
	fwrite($f, $param->password);
	fwrite($f, ', ');
	fwrite($f, $param->txn);
	fwrite($f, ', ');
	fwrite($f, $param->status);
	fclose($f);
	
	// проверить password, login
	
	// В зависимости от статуса счета $param->status меняем статус заказа в магазине
	if ($param->status == 60) {
		// заказ оплачен
		// найти заказ по номеру счета ($param->txn), пометить как оплаченный
	} else if ($param->status > 100) {
		// заказ не оплачен (отменен пользователем, недостаточно средств на балансе и т.п.)
		// найти заказ по номеру счета ($param->txn), пометить как неоплаченный
	} else if ($param->status >= 50 && $param->status < 60) {
		// счет в процессе проведения
	} else {
		// неизвестный статус заказа
	}

	// формируем ответ на уведомление
	// если все операции по обновлению статуса заказа в магазине прошли успешно, отвечаем кодом 0
	// $temp->updateBillResult = 0
	// если произошли временные ошибки (например, недоступность БД), отвечаем ненулевым кодом
	// в этом случае QIWI Кошелёк будет периодически посылать повторные уведомления пока не получит код 0
	// или не пройдет 24 часа
	$temp = new Response();
	$temp->updateBillResult = 0;
	return $temp;
  }
 }
?>

Я конечно понимаю, пример исчерпывающий, но можно ведь было что-нибудь «поготовее» выложить? Поскольку система популярна, как и язык PHP — я решил сразу вынести библиотеку в публичный репозитарий, дабы упростить жизнь тем, кому только предстоит подключать эту систему. Так как в недавнем моем вопросе никто против поста не возражал — выкладываю ее тут.
Описание
Всего голосов 18: ↑16 и ↓2 +14
Просмотры 18K
Комментарии 16

Лучшее в мире PHP за 2012 и дайджест интересных материалов за последние две недели №7 (15.12.2012 — 28.12.2012)

Блог компании Zfort Group Разработка веб-сайтов *PHP *


Следуя традиции, мы решили подвести итоги уходящего года и выделить самые значимые события в мире PHP, которых, к счастью, было немало. И, конечно же, подборка с ссылками на свежие материалы.

Приятного чтения!
Читать дальше →
Всего голосов 82: ↑71 и ↓11 +60
Просмотры 28K
Комментарии 23

Дайджест интересных новостей и материалов из мира PHP за последние две недели №8 (29.12.2012 — 11.01.2013)

Блог компании Zfort Group Разработка веб-сайтов *PHP *


Новогодние праздники подходят к финишу, и мы снова в строю со свежей порцией новостей и материалов из мира PHP.

Приятного чтения!
Читать дальше →
Всего голосов 47: ↑36 и ↓11 +25
Просмотры 17K
Комментарии 34

Дайджест интересных новостей и материалов из мира PHP за последние две недели №11 (12.02.2013 — 25.02.2013)

Блог компании Zfort Group Разработка веб-сайтов *PHP *


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 75: ↑60 и ↓15 +45
Просмотры 20K
Комментарии 17

Bash completion для Composer

Symfony *
Tutorial
Всем доброго времени суток.

Посвящается тем, кто использует Composer, но столкнулся с тем, что при выборе пакета для установки (require) нужно вписать версию этого пакета. Не очень удобно постоянно ее где-то искать, даже используя * не всегда удается все правильно установить.

Таким образом, я решил опубликовать скрипт автоподстановки.
На данный момент о него требуется подстановка имен пакетов, а в случае если пакет уже подставлен, то версию этого пакета, лишь для команды require.
Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 4.2K
Комментарии 3

Дайджест интересных новостей и материалов из мира PHP за последние две недели №15 (08.04.2013 — 22.04.2013)

Блог компании Zfort Group Разработка веб-сайтов *PHP *


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 96: ↑80 и ↓16 +64
Просмотры 23K
Комментарии 10

Дайджест интересных новостей и материалов из мира PHP за последние две недели №16 (22.04.2013 — 06.05.2013)

Блог компании Zfort Group Разработка веб-сайтов *PHP *


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 86: ↑66 и ↓20 +46
Просмотры 21K
Комментарии 11

Дайджест интересных новостей и материалов из мира PHP за последние две недели №17 (06.05.2013 — 21.05.2013)

Блог компании Zfort Group Разработка веб-сайтов *PHP *


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 76: ↑64 и ↓12 +52
Просмотры 20K
Комментарии 12

Дайджест интересных новостей и материалов из мира PHP за последние две недели №22 (15.07.2013 — 28.07.2013)

Блог компании Zfort Group Разработка веб-сайтов *PHP *


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 90: ↑79 и ↓11 +68
Просмотры 19K
Комментарии 5

Дайджест интересных новостей и материалов из мира PHP за последние две недели №25 (25.08.2013 — 08.09.2013)

Блог компании Zfort Group Разработка веб-сайтов *PHP *


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Всего голосов 55: ↑44 и ↓11 +33
Просмотры 21K
Комментарии 10

Дайджест интересных новостей и материалов из мира PHP за последние две недели № 27 (22 сентября — 6 октября 2013)

Блог компании Zfort Group Разработка веб-сайтов *PHP *


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Кстати, вчера исполнился ровно год с момента публикации первого PHP-дайджеста на Хабре. Огромное спасибо всем, кто так или иначе помогал создавать дайджесты, спасибо разработчикам за замечательные инструменты, авторам за их полезные статьи, а главное спасибо вам за то, что до сих пор читаете!
Читать дальше →
Всего голосов 71: ↑64 и ↓7 +57
Просмотры 21K
Комментарии 7

Laravel. Установка, настройка, создание и деплой приложения

Разработка веб-сайтов *PHP *Laravel *
Из песочницы
Tutorial
Итак, у вас есть желание попробовать или узнать о фреймворке Laravel.

Если вы хорошо знакомы с другими PHP фреймворками — для вас это не составит особого труда, если же нет — это отличный выбор для первого фреймворка.

Laravel - PHP framework for artisans!

Статья очень большая. Рекомендую читать ее полностью во время выходных.

Для ленивых:
GitHub
Приложение

Начнем!
Всего голосов 37: ↑33 и ↓4 +29
Просмотры 168K
Комментарии 68