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());
    }
}
Читать далее...

Базы данных SQL, NoSQL и различия в моделях баз данных

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

Система управления базами данных (DBMS/СУБД) - программное обеспечение, предназначенное для хранения и управления данными. Для решения различных задач разрабатывалось всё больше и больше различных СУБД (Реляционные и NoSQL) и программ для работы с ними (MySQL, PostgreSQL, MongoDB, Redis и т.д.)

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

Сравнение NoSQL систем управления базами данных

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

Базы данных это логические смоделированные хранилища предназначенные для разных типов данных. Каждая база данных, за исключением безсхемных (NoSQL), использует модель, которая описывает структуру данных. СУБД - это специальные приложения или набор библиотек для работы с различными базами данных.

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

SQLite vs MySQL vs PostgreSQL: сравнение систем управления базами данных

Базы данных - это специально разработанное хранилище для различных типов данных. Каждая база данных, имеет определённую модель (реляционная, документно-ориентированная), которая обеспечивает удобный доступ к данным. Системы управления базами данных (СУБД) - специальные приложения (или библиотеки) для управления базами данных различных размеров и форм.

СУБД должна обеспечивать реляционную модель работы с данными. Сама модель подразумевает определенный тип связи между сущностями из разных таблиц. Чтобы хранить и работать с данными, такой тип СУБД должен иметь определенную структуру (таблицы). В таблицах каждый столбец может содержать данные разного типа. Каждая запись состоит из множества атрибутов (столбцов) и имеет уникальный ключ, хранящейся в той же таблице - все эти данные взаимосвязаны между собой, как описано в реляционной модели.

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

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
        ));
    }
}
Читать далее...