Заказчикам. Почему лучше начать новый проект на Symfony, чем на Битриксе?

TL;DR Очередной лонгрид на 15-20 минут про то, что Symfony лучше Битрикса почти во всем.

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

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

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

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

Недокументированный битрикс. Валидация пароля пользователя

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

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

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

Но что если вам необходимо проверить пароль без его сохранения в БД? Например для того, чтобы убедиться в его корректности перед передачей в стороннюю БД через API? Или провести проверку безопасности по мере заполнения формы еще до сохранения этой формы?

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

PhpStorm. Почти все, что вы хотели знать об интеграции с Git.

Давно не писал про phpstorm. Да и чего тут писать, казалось бы. Документация в публичном доступе, бесплатная версия доступна для скачивания, да и лицензия стоит не так дорого. Полно уже информации о том, что это наикрутейший инструмент, который есть сейчас на рынке для разработки приложений на php. Но все еще много сомневающихся, многих отталкивает его «монструозность», «тормознутость» (все познается в сравнении). Лично мне кажется, что дело не в перечисленных выше факторах, а в непонимании, как им пользоваться. Читать огромную доку — лень, изучать что-то новое — лень. Программисты — они вообще люди ленивые в большинстве своем.

Многие приходят ко мне на сайт в поисках информации о phpstorm. И этим постом я хочу начать новый цикл статей о phpstorm, который будет раскрывать наиболее полезные фичи этого наикрутейшего инструмента. В этой статье поговорим об интеграции с git.

Осторожно, под катом очень много картинок, гифок, и … текста …

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

Недокументированный битрикс. Собственные настройки для баннеров в админке

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

В общем чего тут говорить, возможности довольно широкие. Но и как многое в БУС, возможности кастомизации этого функционала сильно ограничены. Я не совру, если скажу, что их нет, почти нет.

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

Недокументированный битрикс. Core component injection

Основой БУС и главным строительным материалом системы являются компоненты. Для тех, кто не в курсе, это такая сущность, которая объединяет в себе всё необходимое для работы какого-то функционального блока на сайте. Это может быть баннер, или список «новинок», слайдер с брендами вашего магазина, целая страница каталога или даже полноценный раздел типа «Блог». Возможности компонентов, по большому счету, не ограничены, и с помощью них можно решать разнообразные задачи — от вывода телефона в шапке и заканчивая разработкой REST API из пятиста точек входа.

Довольно часто разработчики используют стандартные компоненты, которые идут в поставке вместе с БУС. Документацией определен механизм расширения компонентов — в зависимости от способа реализации базового компонента вы либо создаете дополнительный шаблон для него, либо копируете компонент целиком, либо наследуетесь от него, если он был разработан с помощью ООП подхода.

Но бывают ситуации, когда этих возможностей не хватает. Например, компоненты БУС могут использоваться самим ядром системы, админкой. Чтобы кастомизировать компонент в админке, вам потребуется отредактировать ядро, что является очень плохой идеей. Но есть другой выход!

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

Недокументированный битрикс. Свои вкладки с кастомным функционалом на странице элемента инфоблока, и не только

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

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

  • можно написать свой тип свойства, тем самым добавив новые визуальные и функциональные возможности для каких-то полей. Ограничений почти нет, все зависит от вашей фантазии и умений. Изменения будут применены к конкретному свойству
  • можно создать php-скрипт, который полностью заменит форму редактирования элемента инфоблока. Путь до такого скрипта задается в настройках инфоблока в опции «Файл с формой редактирования элемента». Чтобы создать этот скрипт, придется скопипастить очень много кода из ядра, и если вам нужно кастомизировать форму ради какой-то мелочи, это может быть неразумно
  • UPD. Спасибо комментарию от Алексея. В конце концов есть стандартный редактор форм админки, про который я совсем забыл. Этот редактор позволяет сгруппировать имеющиеся свойства и поля инфоблока (а также любой другой формы в админке, если она разработана по фен-шую) в разные вкладки, можно создавать новые, удалять существующие и т.д. Но это все же способ именно группировки, а не создания новых вкладок с новым функционалом

Но есть еще один способ.

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

Недокументированный битрикс. Псевдо Dependency Injection в sale

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

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

Мне по долгу службы приходится много и часто ковыряться в ядре битрикса, поэтому волей-неволей натыкаешься на всякие разности. В этот раз расскажу о том, как можно заставить битрикс работать с вашими собственными сущностями модуля «Интернет-магазин».

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

Модульный javascript

По мотивам последнего MeetUp’а, прошедшего у нас в Максимастере, делюсь информацией на страницах своего блога. Уверен, что для многих из вас эта информация не станет новинкой, но нам она позволила несколько систематизировать понимание того, как развивался модульный подход к разработке на js, чем он стал сейчас и в каком направлении двигается. Благодаря этому мы стали лучше понимать, как с этим работать.

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

Битрикс в «коробке»

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

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

Модуль для маркетплейс — от идеи до старта продаж. Часть 14 — публикация и выводы

Это случилось! Наконец-то CouPanda! поселилась в публичном маркетплейсе. Был пройден большой путь. На страницах моего блога можно проследить за развитием модуля от идеи и до полноценно работающего решения. Много работы уже было сделано, и еще больше предстоит впереди. Еще на этапе идеи у меня было очень много задумок, а в процессе разработки появилось еще больше всего. Ниже немного мыслей о том, как все это было, и что меня ожидает в будущем.

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