Всем приятного времени суток. В данной статье, я хочу рассмотреть 2 способа не совсем обычной загрузки файлов, которые мне по долгу службы пришлось реализовать на одном проекте. Задача стояла такая: необходимо реализовать Drag & Drop закачку файлов в админ части сайта, который был сделан на framefork’e Symfony 2.3.* + SonataAdminBundle. По ряду причин я опускаю ту часть, в которой Соната ставилась (если появится необходимость то можно и восполнить этот пробел). Итак, я полагаю что у вас уже установлена Соната и создана хотя бы одна сущность в папке Entity. Если же нет, давайте сделаем это. Добро пожаловать под кат:
Читать полностью »
Метка «PHP» - 18
SonataAdminBundle + AJAX загрузка файлов
2013-10-29 в 13:24, admin, рубрики: php, SonataAdminBundle, symfony, symfony2, uploader, метки: PHP, SonataAdminBundle, symfony2, uploaderRESTful Api используя Zend framework 2
2013-10-29 в 9:39, admin, рубрики: api, php, RESTful, Zend Framework, zend framework 2, Веб-разработка, метки: api, PHP, RESTful, zend framework 2Небольшой гайд по созданию простейшего RESTful api с помощью Zend framework 2 (далее zf2).
Нам потребуется zf2 v2.3@dev, а так же Doctrine 2 ORM.
Итак, начнем с создания структуры директорий нашего api:
mkdir -pv zf2-api/{config/autoload,public,module/v1/{config,src/v1/{Controller,Service,Entities}}}
Загружаем композер
curl -sS https://getcomposer.org/installer | php
Так же нам потребуется создать composer.json с такими зависимостями и установить их.
"require": {
"php": ">=5.4",
"zendframework/zendframework": "2.*@dev",
"doctrine/doctrine-orm-module" :"0.*"
}
Pimple? Не… Не слышал
2013-10-28 в 9:01, admin, рубрики: dependency injection, php, переводы, метки: dependency injection, PHP Удивительно, что на Хабре всё ещё нет статей об этом гениальном DI контейнере для PHP.
Почему гениальном? Потому, что весь код этого творения укладывается в 80 строк – маленький объект с большими возможностями.
Контейнер представляет из себя один класс, и его подключение в проект выглядит следующим образом:
require_once '/path/to/Pimple.php';
Создание контейнера так же просто:
$container = new Pimple();
Как и многие другие DI контейнеры, Pimple поддерживает два вида данных: сервисы и параметры.
Читать полностью »
Поддержка интерактивной консоли PHP под Debian Linux
2013-10-24 в 15:15, admin, рубрики: Debian, linux, php, readline, метки: Debian, linux, PHP, readlineНаверное, многие сталкивались с вопросом неработающей интерактивной консоли PHP.
Когда вводишь
# php -a
и видишь только надпись «Interactive mode enabled», после которой что ни вводи, интерпретация и исполнение введённых команд не работает. На самом деле это не совсем так. На самом деле это специальный режим, которым надо ещё уметь пользоваться. Описание работы данного режима не входит в задачи моего поста. Для обычного же непосвящённого пользователя он выглядит именно так: ничего не работает. А вот тем, чтобы «работало» так, как мы привыкли в консолях python или node.js, мы и займёмся.
Разработка для Concrete5: Простейший модуль
2013-10-23 в 12:31, admin, рубрики: cms, cms разработка, php, Веб-разработка, метки: cms разработка, PHPВ этом уроке я предлагаю рассмотреть, как делается минимальный модуль для Concrete5 CMS (в терминологии системы модули называются блоками) на примере модуля «Разделитель».
Допущу себе небольшое отступление и упомяну, что при разработке расширений для Concrete5 широко используется схема MVC, по этой причине я бы рекомендовал незнакомым с ней, сначала разрбраться что это такое и только потом продолжить чтение.
Читать полностью »
Производительный сетевой сервер на PHP
2013-10-22 в 13:23, admin, рубрики: php, битрикс, Блог компании 1С-Битрикс, веб-кластер, Веб-разработка, высокая производительность, Серверная оптимизация, метки: PHP, битрикс, веб-кластер, Веб-разработка, серверная оптимизация Вы пробовали заказать в Макдональдсе жаренного на орудийном шомполе поросенка с домашним вином и, на десерт, девушку рядом с вами за столиком, для приятной беседы во время трапезы? Даже не думали об этом?? Вот-вот — статья как раз об этом, о стереотипах программиста и лени, двигающей прогресс. А если серьезно — в статье мы напишем очень полезный многим высокопроизводительный сетевой сервер на PHP за пару часов. Я совершенно серьезно :-)
Читать полностью »
Новый PhpStorm 7: за пределами языка
2013-10-22 в 12:09, admin, рубрики: composer, drupal, ejs, google app engine, IDE, javascript, jetbrains, php, phpstorm, rest, ssh, stylus, symfony2, vagrant, Блог компании JetBrains, Веб-разработка, отладка, метки: composer, drupal, ejs, google app engine, IDE, javascript, jetbrains, PHP, phpstorm, rest, ssh, stylus, symfony2, vagrant, отладкаСпешим сообщить о выходе PhpStorm 7 — новой версии IDE для разработки на PHP от JetBrains.
PhpStorm 7 позволит вам не отставать от последних изменений в PHP и других языках для веб-разработки. В этом выпуске IDE интегрирован ряд современных инструментов и предусмотрено еще больше возможностей для расширения за счет поддержки основных PHP-фреймворков.
В 7-й версии вас ждут многие новые фичи, а также улучшения, коснувшиеся всех подсистем продукта.
Давайте посмотрим, что нового в PhpStorm 7!
Читать полностью »
PHP RUtils — небольшая библиотека для обработки русского текста
2013-10-22 в 10:07, admin, рубрики: php, string, русский язык, метки: PHP, string, русский языкВ работе на языке Python я частенько использую библиотеку Pytils для работы с русским текстом, и мне очень не хватало этой библиотеки при работе на PHP. Возможно, я искал плохо, но все, что я находил, не предоставляло подобных возможностей либо не слишком отвечало моим понятиям о чистом коде.
И вот, однажды я решил портировать библиотеку на PHP, и теперь хочу поделиться ею с народом и очень надеюсь на помощь в ее улучшении: буду рад советам, баг-репортам и особенно pull-реквестам. Библиотека находится на GitHub'е: github.com/Andre-487/php_rutils
Возможности библиотеки
PHP RUtils — порт Pytils на PHP. Это утилиты для работы с русским текстом. Утилиты разделены на следующие модули (классы):
- Numeral — работа с числами: склонение существительных в зависимости от количества, числа прописью, суммы денег в рублях и копейках прописью.
- Dt — работа с датами: расширение формата дат PHP русскими именами месяцев, дней недели; временные периоды (например, 24 976 дней назад).
- Translit — транслитерация, подготовка строк для использования в URL'ях, именах файлов.
- Typo — небольшой набор правил типографики простого текста.
Active Record против Data Mapper-а для сохранения данных
2013-10-21 в 16:16, admin, рубрики: active record, orm, patterns, php, ооп, переводы, метки: active record, orm, patterns, PHP, оопЭти 2 шаблона проектирования описаны в книге Мартина Фаулера «Шаблоны корпоративных приложений» и представляют собой способы работы с сохранением данных в объектно-ориентированном программировании.
Пример шаблона Active Record
class Foo
{
protected $db;
public $id;
public $bar;
public function __construct(PDO $db)
{
$this->db = $db;
}
public function do_something()
{
$this->bar .= uniqid();
}
public function save()
{
if ($this->id) {
$sql = "UPDATE foo SET bar = :bar WHERE id = :id";
$statement = $this->db->prepare($sql);
$statement->bindParam("bar", $this->bar);
$statement->bindParam("id", $this->id);
$statement->execute();
}
else {
$sql = "INSERT INTO foo (bar) VALUES (:bar)";
$statement = $this->db->prepare($sql);
$statement->bindParam("bar", $this->bar);
$statement->execute();
$this->id = $this->db->lastInsertId();
}
}
}
//Insert
$foo = new Foo($db);
$foo->bar = 'baz';
$foo->save();
В этом упрощенном примере, дескриптор базы данных вводится в конструкторе Foo (Использование инъекции зависимостей здесь позволяет тестировать объект без использования реальной базы данных), и Foo использует его, чтобы сохранять свои данные. Do_something — просто метод-заглушка, заменяющий бизнес логику.Читать полностью »
Дайджест интересных новостей и материалов из мира PHP за последние две недели № 28 (6—20 октября 2013)
2013-10-20 в 18:38, admin, рубрики: composer, drupal, gae, HHVM, laravel, php, rfc, slim, symfony 2, symfony cmf, yii, Zephir, Блог компании Zfort Group, Веб-разработка, дайджест, Новости, подборка, ссылки, метки: composer, drupal, gae, HHVM, laravel, PHP, rfc, slim, symfony 2, symfony cmf, yii, Zephir, Веб-разработка, дайджест, новости, подборка, ссылки
Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.
Приятного чтения!
Читать полностью »