Бучнев Павел @butschster
Senior PHP Developer
Information
- Rating
- Does not participate
- Location
- Батуми, Аджария, Грузия
- Date of birth
- Registered
- Activity
Specialization
Backend Developer, Software Architect
Lead
From 500,000 ₽
PHP
Docker
PostgreSQL
Git
English
Software development
В системе слишком большая свобода действий под администратором, но в тоже время и все функции как на ладони, для обычных пользователей можно ограничить набор функционала и таких проблем не будет.
UPD. Сайт починить легко, главное что бы сервер не подвел.
Раздел
Настройки раздела и набор полей
Виджет вывода списка документов раздела — аналог компонента news.list в битриксе
Виджет вывода документа раздела — аналог компонента news.detail в битриксе
Спасибо :)
Прошу www.kodicms.ru, есть демо сайт
Почему нельзя вместо Meta::getInstance()->add(...) объявить метод add ститеческим и вызывать просто Meta::add(....) и так же Meta::init(), вместо Meta::getInstance()->init()? Зачем надо создавать объект класса, если то, что он делает не требует наличие этого объекта?
Еще раз повторюсь, срочно прочитай хотя бы книгу, которую я указал по ссылке, новичку в ООП она поможет открыть глаза на многие вещи. Ты забудешь про этот синглтон, ну или хотя бы поймешь в каком случае его необходимо использовать, ну и тоже самое с фабрикой, ты поймешь в чем их отличие. Прочитай что такое статический метод и статический параметр. Все это настолько просто для понимания, что через пару тройку месяцев при взгляде на свой старый код ты будешь смеяться, в прочем как и все над своим старым кодом.
Судя по твоему коду, ты понятия не имеешь, что бывают помимо getInstance, другие статические методы и боюсь как бы для тебя и сам Singleton не казался магией (т.к. он присутсвует в каждом классе), и у тебя в коде нет ни одного Абстрактного класса, от которых, как минимум, можно было бы наследовать все компоненты, хуки и что там еще есть в системе и который помог бы разработчику узнать об обязательных методах, которые должны реализовывать компоненты.
Бегло взглянув на код классов в папке engine, я ужаснулся тому, что все классы наследуют singleton (Хорошо еще сам класс не наследует), независимо от того нужен он там или нет. Поверю, что он нужен везде, если обоснуешь его необходимость хотя бы в этом классе и почему его методы просто ни сделать статическими, как и сам параметр $metadata.
Ну и вопрос на засыпку, как использовать один и тот же модуль несколько раз на странице с разными настройками (Например в одном блоке вывести 10 новостей, в другом 5)?
Очень рекомендую пройтись по каждой ссылке на этой странице: php.net/manual/ru/language.oop5.php и ты узнаешь для себя много нового, и предвещаю через некоторое время появление магических методов, например, замена методов init на __construct
Советую также изучить литературу по теме, например, книгу PHP. Объекты, шаблоны и методики программирования, в которой представлены разные паттерны, после которой предвещаю глубокий рефакторинг кода и выход версии 6.х.х и появление MVC или HMVC ну или того, что сейчас модно.
P.S. Понимание и использование различных паттернов это очень круто, именно это доставляет удовольствие от программирования. Удачи в разработке.
Есть несколько причин разработки CMS, одна из них это заработок денег, т.е. я выполняю заказы по разработке сайтом и для этого использую свою CMS и трачу на разработку одного сайта менее 3-х дней, вторая причина, мне нравится программировать.
Ну и надеюсь в будущем найдутся люди, которые присоединятся к разработке системы, что снизит вероятность того, что система будет заброшена.
RedactorJS до определенного момента был бесплатным, и лицензирование началось с 9-й версии, если я не ошибаюсь.
https://github.com/html5cat/redactor-js вот, он конечно не такой крутой, как платные версии, мне пришлось его дорабатывать.
Они были убраны из ветки master и dev и оставлены в ветке unittest, которую я создал специально для тестов
All class file names and directory names must match the case of the class as per PSR-0., а в связи с тем, что уже был пройден длинный путь разработки на более старых версиях (начальная версия была 3.1 насколько я помню), то привести все названия файлов и классов было уже трудоемкой задачей, которая требовала бы тестирования со стороны пользователей, но аудитория пока что очень маленькая и соответственно самому выловить все баги будет очень тяжело, хотя начало было положено github.com/butschster/kodicms/tree/PSR-0_support благодаря помощи канадского программиста.