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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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