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

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

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

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

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

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

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

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

Шаблоны проектирования в PHP : Команда

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

Задумывались ли вы, что сейчас люди используют больше 4 миллиардов мобильных устройств? В Австралии население составляет примерно 11 миллионов человек, а количество сотовых телефонов - 22 миллиона - то есть примерно 2 устройства на человека.

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

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

Шаблоны проектирования в PHP : Адаптер

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

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

  • Post.php - класс для отправки сообщений. Этот объект содержит в себе текст и URL сообщения.
  • Twitter.php - Твиттер класс. Это самописный класс, или позаимствованный, например с packagist.org
Читать далее...

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 предоставляет большое количество способов интернационализации, но не локализации.

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