Работаем с тегами в Symfony 2

  • PHP
  • 4 года назад

Определённые сервисы ядра Symfony 2 зависят от тегов, по которым определяют: какие сервисы должны быть загружены, быть оповещены о наступлении события либо применены по другому назначению. Например, Twig использует twig.extension для загрузки расширений.

Но теги можно использовать и по своему назначению в собственных бандлах. К примеру, ваш сервис работает с какой-либо коллекцией данных или реализовывает “цепочку” действий, которые выполняются последовательно до наступления положительного результата. В этой статье я приведу пример “транспортной цепочки” - коллекция классов реализующих \Swift_Transport. Используя такую цепочку, Swift mailer (служба отправки электронных писем в Symfony2) использует несколько способов отправки писем, до тех пор пока письмо не будет отправлено. В данной статье уделено основное внимание внедрению зависимостей в проект.

Читать далее...

Установка Java на Ubuntu при помощи apt-get

Это наиболее простой и, как следствие, рекомендованный способ, в результате которого мы получим установленную OpenJDK6 если у нас Ubuntu 12.04 и более рание версии или OpenJDK7 для версий ubuntu начиная с 12.10. Всё очень просто. Для начала обновим список пакетов из apt-get

sudo apt-get update

Теперь проверим была ли установлена Java ранее

Читать далее...

Symfony 2 Joboard : Контроллёр и Представление

Сегодня мы собираемся настроить контроллер для вакансий, который мы создали в прошлой части. Он уже содержит большую часть кода, которая необходима для Joboard:

  • Страница со списком всех вакансий
  • Страница для создания новой вакансии
  • Страница для редактирования вакансии
  • Возможность удаления вакансии

Хотя текущий код уже готов к использованию, мы всё же переделаем шаблоны, чтобы они больше соответствовали макетам Joboard.

Читать далее...

Symfony 2 Joboard : Модель данных

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

Читать далее...

Symfony 2 Joboard : Спецификация проекта

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

Веб-сайт Joboard будет иметь четыре типа пользователей: Администратор (владеет и управляет веб-сайтом), пользователь (посетитель веб-сайта, ищет работу), работодатель (посетитель веб-сайта и размещает вакансии) и партнёр (имеет доступ к списку вакансий и публикует их на своем веб-сайте).

Читать далее...

Symfony 2 Joboard : Начинаем проект

В каждой главе, в приложение будут добавляться новые функции и мы будем использовать такой подход для постепенного введения в Symfony фреймворк, а также узнаем о передовом опыте в веб-разработке на Symfony.

В этой части, вы не будете писать код. Вместо этого вы будете настраивать рабочую среду разработки.

Прежде всего вам нужно проверить, что ваш компьютер имеет соотвествующее программное обеспечение для веб-разработки. В качестве операционной системы мы будем использовать Ubuntu 12. Из ПО как минимум нам потребуется веб-сервер Apache, СУБД MySQL и PHP 5.3.3 или более поздней версии. Для Windows рекомендую установить XAMPP или OpenServer, там есть все библиотеки и уже настроено окружение для разработчика. Также вместо сервера Apache вы можете использовать встроенный сервер в php 5.4 и выше, как это сделать буде тпоказано ниже.

Читать далее...

LXML: Быстрая и гибкая обработка XML и HTML в Python

  • Python
  • 4 года назад

Для обработки XML и HTML можно использовать и BeautifulSoup, но эта библиотека использует слишком много памяти и не удовлетворяют требованиям по скорости для больших файлов. Библиотека LXML очень быстро открывает и обрабатывает большие XML или HTML файлы, поэтому мы и будем рассматривать её в этой статье.

Установить её вы можете отсюда. Давайте рассмотрим работу библиотеки на примерах.

Читать далее...

Центрирование элементов по вертикали на чистом CSS

  • CSS
  • 4 года назад

До сих пор в CSS было проблемой, что он работает преимущественно вдоль одной оси. В зависимости от контекста это может быть вертикальная или горизонтальная ось. И это отлично подходит для стека блочных элементов (расположенных один за другим), например:

~~~{.css} display: block; width: 100%;


Также легко отобразить элементы вдоль горизонтальной оси используя плавающие элементы (float). Однако если вы хотите сделать элементы динамически на обе оси, то у вас будет не так много вариантов для этого. В таком случае вам придётся использовать обходные пути или способы основанные на JavaScript. Но на данный момент новая спецификация CSS column (CSS столбцы) дает нам новую надежду на достижение этой цели используя только чистый CSS. Примечательно, что CSS столбцы отдают приоритет вертикальному выравниванию перед горизонтальным.

### Горизонтальное центрирование

Горизонтальное центрирование сделать очень просто. Существует несколько способов для достижения эффекта горизонтального центрирования элементов:

### Inline-block и Inline элементы с выравниванием текста

Inline-block и Inline элементы, обрабатываются как текст - они рассчитывают свои собственные значения ширины и не реагируют на заявленную ширину, если вы не объявили их как блочные элементы (см. Далее).

~~~{.css}
display: inline; /* [или] display: inline-block; */
text-align: center;
Читать далее...