Symfony 2 Joboard : Функциональное тестирование

Функциональные тесты отлично подходят для полной проверки вашего приложения - от запроса в браузере до выданного сервером ответа. Они покрывает все уровни приложения: маршрутизацию, модели, действия и шаблоны. Они очень похожи на то, с чем вы уже сталкивались: каждый раз при изменения действия, вы проверяли корректность его работы в браузере, кликая на ссылки и проверяя элементы на полученной странице. Другими словами, функциональные тесты автоматизируют эти действия.

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

Эффективная настройка Elasticsearch

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

Самое сложное, в этом движке - это его настройка на получение релевантных результатов. Так же хотелось бы отметить, что документация написана довольно плохо. Конечно, это сугубо моё мнение и я не могу сказать, что мы ничего полезного в ней не нашли, но поиски нам давались с большим трудом. Мы провели довольно глубокое исследование, чтобы понять как работает ElasticSearch. И, наконец, мы поняли его основы и готовы сами задокументировать его возможности.

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

Symfony 2 Joboard : Юнит тестирование

В Symfony2 существует два типа автоматизированных тестов: юнит тесты и функциональные тесты. Юнит тесты проверяют корректность работы методов и функций. Каждый тест должен быть максимально независим от другого. Функциональные тесты отвечают за корректность работы приложения в целом.

В этой статье рассмотрим юнит тесты, а функциональные оставим на следующий раз. Symfony2 включает в себя стороннюю библиотеку PHPUnit, которая предоставляет собой фреймворк для тестирования. Для запуска тестов требуется установить PHPUnit 3.5.11 или выше.

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

Symfony 2 Joboard : Изменяем страницу с категориями

Для начала добавим маршрут для URL категорий. Добавьте его в начале файла src/App/JoboardBundle/Resources/config/routing.yml:

# ...
AppJoboardBundle_category:
    pattern:   /category/{slug}/
    defaults: { _controller: AppJoboardBundle:Category:show }

Чтобы получить slug категории нам надо добавить метод getSlug() в класс модели Category (src/App/JoboardBundle/Entity/Category.php):

<?php

# src/App/JoboardBundle/Entity/Category.php

use App\JoboardBundle\Utils\Joboard as Joboard;

class Category
{
    // ...

    public function getSlug()
    {
        return Joboard::slugify($this->getName());
    }
}
Читать далее...

Symfony 2 Joboard : Подробнее о моделях

Из требований второй части у нас должно быть: “На домашней странице пользователь должен видеть последние активные вакансии”. На данный момент отображаются все вакансии вне зависимости от того активные они или нет.

<?php

# src/App/JoboardBundle/Controller/JobController.php

class JobController extends Controller
{
    // ...
    public function indexAction()
    {
        $em = $this->getDoctrine()->getManager();

        $entities = $em->getRepository('AppJoboardBundle:Job')->findAll();

        return $this->render('AppJoboardBundle:Job:index.html.twig', array(
            'entities' => $entities
        ));
    }
}
Читать далее...

Обзор компонентов Symfony2 : Finder

  • PHP
  • 3 года назад
  • 3/6

Процесс установки невероятно прост при помощи Composer:

{
    "require": {
        "symfony/finder": "2.4.*"
    }
}

Если вы никогда не пользовались Composer, то здесь вы можете ознакомиться с ним.

Этот компонент служит для удобного поиска файлов и каталогов. Он предоставляет удобные методы для поиска того, что вы ищете исходя из имени, местоположения, размера, даты последних изменений и из многих других фильтров.

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

Обзор компонентов Symfony2 : Translation

  • PHP
  • 3 года назад
  • 2/6

Современное приложение должно поддерживать использование разных языков, чтобы люди из любого уголка Земли могли полноценно его использовать. Интернационализация - i18n - процесс разработки приложения с возможностью его перевода на разные языки без изменения структуры программы. Локализация - l10n - процесс адаптации уже переведенного приложения под специфический регион или область, например добавление определенного формата даты или валюты. Компонент Translation предоставляет большое количество способов интернационализации, но не локализации.

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

Обзор компонентов Symfony2 : Templating

  • PHP
  • 3 года назад
  • 1/6

Как правило, для отрисовки самих шаблонов с использованием переменных, этот компонент использует какой-либо движок шаблонизатора. Хотя сам компонент позволяет создавать собственные шаблонизаторы, мы с вами узнаем, как правильно интегрировать сторонний движок, например Twig или Smarty. А также настроим загрузку правильного шаблонизатора в зависимости от расширения файла шаблона.

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

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