Повышение безопасности и упрощение разработки в Symfony2 при помощи аннотаций и фильтров Доктрины

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

Как вы и сами прекрасно понимаете, пользователь должен видеть только свои заказы, свои сообщения и так далее, и ни в коем случае не чужие. Но, конечно, иногда пропустив условие выборки данных, например, забыв указать WHERE в ParamConverter, мы нарушаем это правило.

Я покажу вам как можно легко избавиться от подобного рода проблем не только на определенных запросах и таблицах, а в пределах всего Symfony приложения. И в этом нам помогут аннотации и фильтры Доктрины.

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

Что необходимо знать каждому Javascript разработчику

Javascript - постоянно развивающийся язык, особенно сейчас, когда установлен ежегодный график выхода обновлений спецификаций ECMAScript. В связи с этим важность знания Javascript за пределами jQuery возрастает.

Конечно, в этой статье мы не сможем покрыть весь необходимый объем знаний. Наверняка, будут моменты, которые я пропустил, возможно, ошибся или наши с вами мнения в отношении необходимого набора знаний разойдутся.

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

JSON конфиги в Golang

import "encoding/json"

Создадим древовидный JSON файл.

{
   "applications": [
       {
           "name": "app1",
           "db": {
              "host": "db2",
              "user": "root",
              "pass": "",
              "dbname": "test"
           }
       },
       {
           "name": "app2",
           "db": {
              "host": "db2",
              "user": "root",
              "pass": "",
              "dbname": "test"
           }
       }
    ]
}

Опишем структуру. Обращу внимание, что имена свойств нужно писать с большой буквы.

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

Подготовка к Zend сертификации : Строки и и регулярные выражения

  • PHP
  • 2 года назад
  • 3/3
  • выделяются одинарными или двойными кавычками
  • двойные кавычки применяются в случае парсинга переменных или использования специальных символов (\n). На скорость обработки данных не влияет
  • strlen($string) - возвращает длину строки, а именно количество байт, а не символов
  • str_word_count($string, $format, $charlist) - возвращает количество слов, $format (0 - возврат количества слов, 1 - массив из всех слов, 2 - ассоциативный массив, где в качестве ключей - положение в строке (индекс)), $charlist - список символов, из которых может состоять слово (то есть 3 - слово fri3nd будет посчитано).
  • count_chars($string, 1) - считает количество вхождений символов, 1 - режим, возвращает массив со всеми символами (0 - возвращает символы, не входящие в строку).
  • soundex($string) // высчитывает soundex ключ строки (строка длинной в 4 символа, начинающаяся с буквы), для поиска по произношению, например, soundex(“Euler”) == soundex(“Ellery”); // E460
  • metaphone($string, $phonemes) - высчитывает metaphone ключ для строки (является более точным сравнением чем soundex(), так как в ней учитываются правила произношения в английском языке, сгенерированные ключи разной длины), $phonemes ограничивает список возвращаемых символов.
  • trim($string, $optional_char_list) - убирает пробелы из начала и окончания строки (space/tab/newline); если задан $optional_char_list, то указанные символы так же удаляются.
  • ltrim($string, $optional_char_list) - удаляет пробелы из начала строки.
  • rtrim($string, $optional_char_list) - аналог chop(), удаляет пробелы с конца строки.
Читать далее...

Как создать таблицы в MySQL и MariaDB на сервере Ubuntu

MySQL и MariaDB две наиболее распространенные СУБД, использующие язык запросов SQL. Довольно большое число приложений для Ubuntu в той или иной степени используют MySQL или MariaDB, чтобы хранить свои данные.

В этой статье мы рассмотрим как создавать таблицы для MySQL и MariaDB. Все примеры, приведенные ниже, проверялись на сервере Ubuntu 12.04 VPS, но они должны работать на любой машине с установленной системой Ubuntu.

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

Как базовые шаблоны помогают понять принцип работы контроллеров

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

Пол М. Джонс однажды завёл интересное обсуждение на тему применения шаблона MVC в веб, основные моменты которой он описал в статье Action-Domain-Responder. Предлагаю вам познакомиться с ней, после чего вы всегда сможете вернуться и прочитать эту статью.

Хочу отметить, что я почти полностью разделяю мнение автора и, более того, я смог даже внести свою лепту при общении с Полом. Но всегда оставался один момент, на счет которого я имел свою точку зрения, и, наконец, я собрался с мыслями и решил изложить её. Контроллеры - действия в ADR - можно описать при помощи шаблона проектирования фасад.

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

Сравниваем AngularJS и EmberJS

В своей недавней статье мы сравнивали AngularJS с React и выделили отличия между двумя фреймворками. На этот раз рассмотрим EmberJS фреймворк, который отвечает за все “тяжелые” операции в веб-разработке. Ниже познакомимся с его историей, примерами использования, а так же сравним его с AngularJS в разрезе возможностей и функционала.

EmberJS - это фреймворк для языка JavaScript, который изначально назывался SproutCore. В декабре 2011 года его решили переименовать в EmberJS для того, чтобы разделить виджет библиотеку SproutCore 1.0 и сам фреймворк. Роль главного разработчика EmberJS сыграл Yehuda Katz, который так же известен своим участием в разработке jQuery, Rails и SproutCore.

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

Сравнение AngularJS и React

В последнее время в области веб-разработки изменения происходят очень быстро. Без лишнего преувеличения, практически каждый месяц появляется новый JavaScript фреймворк, а разобраться во всем этом разнообразии не всегда просто. В этой и нескольких последующих статьях мы рассмотрим некоторые фронт-энд фреймворки для JavaScript и сравним их с AngularJS. Мы познакомимся с их историей и сравним их в функциональном разрезе. В этой статье мы разберёмся с таким фреймворком как React и посмотрим в чем он превосходит, а в чем уступает AngularJS.

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