Symfony 2 Joboard : API для партнёров

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

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

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

Symfony 2 Joboard : RSS

Во время поиска работы вы, наверняка, хотели бы получать свежие вакансии сразу же после их публикации. Согласитесь, довольно неудобно каждый раз проверять сайт, поэтому мы создадим несколько новостных лент (RSS), чтобы наши пользователи всегда были в курсе событий.

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

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

Symfony 2 Joboard : Безопасность

Безопасность - это двухэтапный процесс, целью которого является запретить или разрешить доступ к ресурсу для определённых групп пользователей. Первый этап - аутентификация - система идентифицирует пользователя, исходя из предоставленных им данных. На втором этапе система переходит к авторизации и определяет, имеет ли пользователь доступ к определенным данным.

Настройки системы безопасности хранятся в файле app/config/security.yml. Изменим этот файл:

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

Пространства имён в PHP

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

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

PHP не позволяет использовать два класса с одинаковым названием. Они должны быть уникальны. Представьте себе, вы используете какую-либо стороннюю библиотеку, в которой присутствует класс User. Это означает, что свой собственный класс с таким же названием вы уже не сможете использовать. Что не совсем нам подходит, ведь название для класса очень даже удобное.

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

Symfony 2 Joboard : Интерфейс администратора

После завершения 11 части наше приложение вполне работоспособно. Им могут пользоваться как соискатели, так работодатели. Настало время обсудить администраторскую составляющую нашего сайта. При помощи Sonata Admin Bundle мы полностью реализуем интерфейс администратора менее чем за час.

Чтобы установить последнюю версию бандла, добавьте в файл composer.json следующие строки:

"sonata-project/admin-bundle": "dev-master",
"sonata-project/doctrine-orm-admin-bundle": "dev-master"

Затем запустите команду обновления пакетов composer:

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

Symfony 2 Joboard : Тестирование форм

Давайте откроем файл JobControllerTest и добавим в него функциональный тест охватывающий процесс создания и валидации вакансии. В конце файла добавьте следующий код:

<?php

# src/App/JoboardBundle/Tests/Controller/JobControllerTest.php
// ...

public function testJobForm()
{
   $client  = static::createClient();
   $crawler = $client->request('GET', '/job/new');

   $this->assertEquals('App\JoboardBundle\Controller\JobController::newAction',      $client->getRequest()->attributes->get('_controller'));
}

Теперь воспользуемся методом selectButton() объекта $crawler для получения формы. Этот метод позволяет выбирать элементы с тегом button и поля ввода submit. После этого через метод form() этого же объекта, получим доступ к экземпляру формы:

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

Symfony 2 Joboard : Формы

На каждом сайте в том или ином виде присутствуют формы, от простой формы контакта до сложных со множеством полей. Создание форм - не простая задача для разработчика, для начала надо написать HTML форму, реализовать проверку введенных данных, обработку данных перед сохранением в БД, отображение ошибок, восстановление полей в случае ошибок и т.д.

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

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

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

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