Pull to refresh

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

Open source *PHP *Symfony *Yii *Laravel *

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

Читать далее
Total votes 11: ↑11 and ↓0 +11
Views 2.3K
Comments 1

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

PHP *

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

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

Читать далее
Total votes 13: ↑3 and ↓10 -7
Views 1.5K
Comments 2

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

Information Security *PHP *IT-companies

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

Читать далее
Total votes 10: ↑10 and ↓0 +10
Views 1.2K
Comments 0

Замена PEAR на Composer

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

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

Development for iOS *
В состав Develop Tools под Mac OS входят несколько приложений и множество туловиню. Одна из них Quartz Composer. С ее помощью можно делать множество визуальных эффектов.
В этом тутореале я попробую объяснить как сделать, вращающийся куб, под звуки.
Читать дальше →
Total votes 7: ↑5 and ↓2 +3
Views 4.9K
Comments 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.

Читать дальше →
Total votes 73: ↑60 and ↓13 +47
Views 395K
Comments 43

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

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

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

Читать дальше →
Total votes 231: ↑168 and ↓63 +105
Views 40K
Comments 429

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

Zfort Group corporate blog Website development *PHP *


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

Приятного чтения!
Читать дальше →
Total votes 84: ↑71 and ↓13 +58
Views 20K
Comments 15

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

Payment systems *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 — я решил сразу вынести библиотеку в публичный репозитарий, дабы упростить жизнь тем, кому только предстоит подключать эту систему. Так как в недавнем моем вопросе никто против поста не возражал — выкладываю ее тут.
Описание
Total votes 18: ↑16 and ↓2 +14
Views 18K
Comments 16

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

Zfort Group corporate blog Website development *PHP *


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

Приятного чтения!
Читать дальше →
Total votes 82: ↑71 and ↓11 +60
Views 28K
Comments 23

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

Zfort Group corporate blog Website development *PHP *


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

Приятного чтения!
Читать дальше →
Total votes 47: ↑36 and ↓11 +25
Views 17K
Comments 34

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

Zfort Group corporate blog Website development *PHP *


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

Приятного чтения!
Читать дальше →
Total votes 75: ↑60 and ↓15 +45
Views 20K
Comments 17

Bash completion для Composer

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

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

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

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

Zfort Group corporate blog Website development *PHP *


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

Приятного чтения!
Читать дальше →
Total votes 96: ↑80 and ↓16 +64
Views 23K
Comments 10

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

Zfort Group corporate blog Website development *PHP *


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

Приятного чтения!
Читать дальше →
Total votes 86: ↑66 and ↓20 +46
Views 21K
Comments 11

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

Zfort Group corporate blog Website development *PHP *


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

Приятного чтения!
Читать дальше →
Total votes 76: ↑64 and ↓12 +52
Views 20K
Comments 12

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

Zfort Group corporate blog Website development *PHP *


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

Приятного чтения!
Читать дальше →
Total votes 90: ↑79 and ↓11 +68
Views 19K
Comments 5

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

Zfort Group corporate blog Website development *PHP *


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

Приятного чтения!
Читать дальше →
Total votes 55: ↑44 and ↓11 +33
Views 21K
Comments 10

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

Zfort Group corporate blog Website development *PHP *


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

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

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

Website development *PHP *Laravel *
Sandbox
Tutorial
Итак, у вас есть желание попробовать или узнать о фреймворке Laravel.

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

Laravel - PHP framework for artisans!

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

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

Начнем!
Total votes 37: ↑33 and ↓4 +29
Views 168K
Comments 68