Нужен свежий взгляд на api движка

artygrand

Создатель SyDES
Приветствую! Тут форум, похоже, еще живой, что радует. Не совсем уверен в правильности раздела, но более подходящего не нашел.

Я простой программист, создатель 100500-го движка для создания сайтов и нуждаюсь в небольшой помощи.
Сейчас я работаю над новой версией и хочу поделиться этим "шедевром" со всеми, но просто так выкатить я не могу. Движок я делал так, что бы было удобно пользоваться, но, к сожалению, это истинно только для меня. После того, как я на хабре увидел десяток свежих cms, в которых вообще не понятно, что делает определенный модуль или магический код, у меня закрались сомнения, покажется ли тут внешнее api полным, логичным и простым для остальных.

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

https://github.com/sydes/sydes/tree/master/themes/default - тема
https://github.com/sydes/sydes/tree/master/system/modules/SampleName - модуль с кучей тестового функционала
https://github.com/sydes/sydes/tree/master/system/modules/Theme - еще не доделанный, но реальный модуль
https://github.com/sydes/mobile-menu - парочка плагинов, созданных как proof of concept
https://github.com/sydes/hidden-admin

И, если не лень, описать среднестатистический набор api, для какой-нибудь cms, который вы используете для разработки.
 

antson

Новичок
Партнер клуба
www рут равен корню проекта
инсталяция - что такое мастеркод
ввел вместо test.com sydes (может я извращенец, но девы у меня http://project/ без .ru,.com или .loc) - дальше куча ошибок в 40 строке api.php
тхумбы, temp внутри папки app
assets внутри system
class Controller и т.п. - различаются только намеспейсом - хеппи дебаджин
нигде не увидел описание для phpdoc

дальше надоело
 

antson

Новичок
Партнер клуба
решил все таки домучать .
php -s 127.0.0.1 - site not found, хотя сайт был единственный . следовательно без апача уже с ним не поработаешь.
дефолтный шаблон. куча иблок не найден. дефолтный шаблон не стимулируют копаться дальше.
не смотря на ру локализацию почти все по англицки

вот теперь точно стираю
 

artygrand

Создатель SyDES
Спасибо, за то, что глянул.

> тхумбы, temp внутри папки app
можешь пояснить, чем не понравилось? тут app - это место, которое полностью принадлежит пользователю и хранит в себе контент, пользовательские расширения и прочий мусор.

> assets внутри system
необходимые для работы, базовые скрипты, никак не связанные с шаблонными и от расширений

> описание для phpdoc
что это такое?

> без апача уже с ним не поработаешь
естественно, ему же надо с мод_реврайтом работать. как он еще сможет адреса получать?

> инфоблоки и локализации
еще не заполнил

По остальному посмотрю, что смогу исправить.
 

antson

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

/**
что делает
@param
@return
*/
и остальное, что нужно для автокомплита и удобства в среде разработки

php -s route.php - можно решить проблемы рерайта.


и главное два варианта установки минимальное для разработки и демо - вызывающее желание использовать продукт
 

antson

Новичок
Партнер клуба
у тебя основное достоинство что можно без субд. Вот и стремись к тому, что сайт можно запустить чуть ли на роутере с опенврт.
(nginx+fast-cgi)
 

artygrand

Создатель SyDES
phpdoc есть на всём публичном api, если не пропустил где-нибудь

> запустить чуть ли на роутере с опенврт
Кажется, эта цель не вписывается в мое мировоззрение. Я рассчитываю больше на всякие шаред-хостинги безо всяких допиливаний. А там обычно при создании "сайта" рут находится именно в корне, а не в public, и что бы его изменить нужно удалять сайт и создавать заново. Мне - лень. Менеджерам - хз как объяснить.
 

antson

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

Можно подобрать конфиги так что на 512м озу и 6гигах на ssd он будет держать приличный онлайн.
вот под эту нишу и ориентироваться.
Так как без девелопера достойный сайт менеджер сам сделать не сможет.
 

artygrand

Создатель SyDES
@antson

> ввел вместо test.com sydes ... дальше куча ошибок в 40 строке api.php
посмотрел код, это никак не связано. я только что запустил сайт с доменом test, и все страницы вроде text/html прекрасно отрабатываются.
на 40-ой строке класса Api находится функция, вызывающая cURL или file_get_contents, в зависимости, что доступно. Только я очень хотел бы выяснить, какие именно ошибки, и зависят ли они от настроек php.

> мастеркод
переименовал в пароль разработчика. (или кодом разработчика его обозвать?) повышает права в системе до рута.

> php -s 127.0.0.1 - site not found
Я впервые слышу про встроенный сервер. Но таки все работает, просто надо правильно приготовить.
Сайт всегда привязан, как минимум, к одному домену и нигде в другом месте не будет открываться, даже если обратиться по ip.
Так что тебе нужно при создании сайта в консоли указать домен localhost, или любой другой, который направлен на твой комп.

у меня php -S localhost:8080 отработал на ура, если не считать что в админке ссылка на сайт без порта, естественно.

---

За то, что все это оценил - спасибо. Мне теперь видны некоторые неочевидные/скрытые, для других, вещи. Хотя и кейсы не совсем обычные вышли.
Но я в своем посте просил глянуть именно на примеры модулей/тем, на то как там описываются действия, на то, что будут смотреть другие, когда будут писать свои расширения.

ps. перенос корня в public добавит геморроя с публикацией ассетов при установке, но да, надо будет когда-нибудь альтернативную версию сделать, после всех важных работ.
 
Последнее редактирование:

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Сайт очень даже часто должен работать по любому запросу, независимо от имени домена. Это и мультидоменные сайты, и внутренние сервисы с виртуальным ip.
 

antson

Новичок
Партнер клуба
@artygrand, например в симфони тоже можно использовать SQLite

вот только для девелопера будет достаточно выполнить
1. composer создать проект
на автомате запуститься скрипт ввода параметров
2. вызвать докрину для создания базы и сущностей
3. набрать console server:run
4. открыть броузер 127.0.0.1:8000

все это легко делается из шторма
1. как создать новый проект из стороджа пакагиста
2.3 из встроенного терминала

lamp или wamp вообще можно на своем компе не держать
нужны например только шторм и субд (в твоем случае даже без нее)

про ошибку в api.php - это был вызов из командной строки под виндой

еще раз задумайся о нише для cms. Имхо рынок для домохозяек убит онлайн-конструкторами.

приличный шаред и начальный вдс сопоставимы по цене.
nginx + fast-cgi без муськи снижает требования до 256M озу

Хотя при оплате за год 10 Гб ssd и 1 Гб озу можно взять получается дешевле 150р в месяц

да шареды дешевле 40руб месяц или вообще 100руб за год.
но там народ накатит в одну кнопку cms, которые настроил хостер.
 

antson

Новичок
Партнер клуба
@artygrand, http://getjump.me/ru-php-the-right-way/ - прочти обязательно

Вот кодестайл у тебя не похож ни на чего.
Люди лучше выучать симфони, лаверал. За это работодатели готовы платить.

А у тебя, чтобы что-то написать нужно держать 10-15 открытых вкладок ядра,
чтобы понять функционал уже есть или его надо с нуля делать
 
Последнее редактирование:

AmdY

Пью пиво
Команда форума
Всё не так плохо как обычно, посмотреть интересно. Она довольна логична и понятна, при этом есть хоть какой-то контейнер, который позволит заткнуть многие недостатки. Лет 10 назад было бы само то.
Но сейчас не вижу смысла лезть в нишу которую уже давно застолбил вордпрес. А у вас какая-то смесь laravel, yii и bitrix в которой ещё нужно разбираться и обрастать плагинами, плюс за эти годы php сильно шагнул вперёд в плане страндартизации, psr, composer, готовые компоненты. Но, думаю, вы это и сами знаете.
 

artygrand

Создатель SyDES
@AmdY, типа никто не видит, что и psr и composer есть?
А "хоть какой-то контейнер", это pimple.

Да и вордпресс разве полностью устраивает с его лупами, глобалами и адом хуков? Я, как минимум для себя, сделаю достойную замену ему.

Плагинами уж точно обрасту, но это будет не 1000 слайдеров и 500 каруселей и еще немножко чуть более уникальных, а 1 конструктор слайдеров, с 1000 шаблонов js-слайдеров и 500 шаблонами каруселей и еще куча уникальных. Первоначальный запас расширений уже есть, написано для клиентов, можно переиспользовать.

>смесь laravel, yii и bitrix
Точнее laravel, slim, bitrix, drupal и wordpress, и все это без того, что в них бесит и, я надеюсь, в пределах мегабайта кода. Правда ckeditor слишком много весит, но посмотрим, что в 5 версии ждет.
 

fixxxer

К.О.
Партнер клуба
Ну это такой вордпресс из js-мира. :)

Советую глянуть https://trix-editor.org/. Понимание, что execCommand - это адок, и что надо было все делать через virtual dom, наверное, приходит ко всем, кто намучался с contentEditable, но они не только поняли, но и сделали. Правда, на кофескрипте дурацком, но это же basecamp :)
 

AmdY

Пью пиво
Команда форума
@AmdY, типа никто не видит, что и psr и composer есть?
А "хоть какой-то контейнер", это pimple.

Да и вордпресс разве полностью устраивает с его лупами, глобалами и адом хуков? Я, как минимум для себя, сделаю достойную замену ему.

Плагинами уж точно обрасту, но это будет не 1000 слайдеров и 500 каруселей и еще немножко чуть более уникальных, а 1 конструктор слайдеров, с 1000 шаблонов js-слайдеров и 500 шаблонами каруселей и еще куча уникальных. Первоначальный запас расширений уже есть, написано для клиентов, можно переиспользовать.

>смесь laravel, yii и bitrix
Точнее laravel, slim, bitrix, drupal и wordpress, и все это без того, что в них бесит и, я надеюсь, в пределах мегабайта кода. Правда ckeditor слишком много весит, но посмотрим, что в 5 версии ждет.
да, это я просмотрел, про psr писал больше о логере и реквесте, то что вы используете зендовскую реализацию не понял. а про контейнер - pimple простенькая замена $GLOBALS без понятия контекста.

p.s. Ещё у вас не хватает query builder для запросов, он бы очень пригодился для удобного расширения.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Отдельного query builder-а для запросов не хватает в принципе. Хороший в Yii - но не отдельный. Отдельный в Doctrine - но убогий. В ларавеле что-то среднее - и не совсем отдельное, и не все, что нужно.
 
Последнее редактирование:
Сверху