Вы описали свои хотелки. Хотелки это хорошо, но при разработке возникают масса вопросов как это сделать, чтобы было понятно, просто и удобно. Приходится изобретать многие вещи и не по одному разу с переделыванием. Вот если вы более конкретно всё описали тогда нашёлся разработчик. А вам я так думаю на халяву хочется уже готовое решение. Используйте formio, может ещё какой аналог тогда.
Я вот сейчас настраиваю js скрипт UI для своего инструмента и для формы тоже буду делать такой функционал, вопрос стоит как более удобно для пользователя это сделать, приходится многое обдумывать...
Было бы не плохо если у вас по этому поводу были какие-то мысли, но у вас только одни хотелки..
MkrtElion#: Как бы так сказать, в пыхе работа с картинками идет через расширения.
Да в php много расширений, но они работают довольно таки быстро. В данном случае применяю GD
<?php
// пространство имён ядраnamespace core;
// Ресайз картинкиclass RsizeImage {
private $img,$itp;
// Загрузка картинкиpublic function Load($way) {
$info=getimagesize($way);
$this->itp=$info[2];
switch($this->itp){
case IMAGETYPE_JPEG:
$this->img=imagecreatefromjpeg($way);break;
case IMAGETYPE_GIF:
$this->img=imagecreatefromgif($way);break;
case IMAGETYPE_PNG:
$this->img=imagecreatefrompng($way);
}
}
// Сохранение картинкиpublic function Save($way,$itp=IMAGETYPE_JPEG,$cmp=75,$prm=null){
switch($itp){
case IMAGETYPE_JPEG: // cmp - компрессия
imagejpeg($this->img,$way,$cmp);break;
case IMAGETYPE_GIF:
imagegif($this->img,$way);break;
case IMAGETYPE_PNG:
imagepng($this->image,$filename);
}
if($prm!=null){
chmod($way,$prm);// prm - разрешения
}
}
// Показать картинкуpublic function Show($itp=IMAGETYPE_JPEG){
switch($itp){
case IMAGETYPE_JPEG:
header('Content-Type: image/jpeg');
imagejpeg($this->img);break;
case IMAGETYPE_GIF:
imagegif($this->img);break;
case IMAGETYPE_PNG:
imagepng($this->img);
}
}
// Изменение размераpublic function Resize($width,$height){
$nimg=imagecreatetruecolor($width,$height);
imagecopyresampled($nimg,$this->img,0,0,0,0,$width,$height,$this->Width(),$this->Height());
$this->img=$nimg;
}
// Изменение размера по ширинеpublic function ResizeWidth($width){
$ratio=$width/$this->Width();
$height=$this->Height()*$ratio;
$this->Resize($width,$height);
}
// Изменение размера по высотеpublic function ResizeHeight($height){
$ratio=$height/$this->Height();
$width=$this->Width()*$ratio;
$this->Resize($width,$height);
}
// Маштабирование от процентовpublic function Scale($prc){
$width=$this->Width()*$prc/100;
$height=$this->Height()*$prc/100;
$this->Resize($width,$height);
}
// Ширина картинкиpublic function Width(){return imagesx($this->img);}
// Высота картинкиpublic function Height(){return imagesy($this->img);}
}
?>
Сейчас меня вынуждаете вам что-то доказывать, я не собираюсь вам ничего доказывать. Я занимаюсь чем мне интересно.
Человек ТС ищет инструмент, я предложил в скайпе показать и рассказать что я сделал, всё. Завтра на дачу :) вернее уже сегодня
Зависит от данных. В движке разбираю структуры страниц simplexml. Со сложными данными xml_parser, dom xml тяжеловат и медленнее, по сути можно использовать любую
timo-71#: Если правильно понял, то скорее не "не указывать", а чтобы не плодить клонов, каких то вещей в разных классах.
Грузовик(вместо такого класса, такого и такого) опять же нужен для облегчения работы разработчиков узлов, они будут знать, что есть такой грузовик и через него могут получить доступ к другим узлам и тд. всё остальное пишут так как хотят. Правда я бы рекомендовал использовать мои подходы о которых также расскажу в документации. Тогда будет прощевсем.
dj D#: И когда намечается встряска (передел) ниши?
Никакой встряски и передела ниши не будет. Я же не крупная кампания, я работаю сам по себе. Максимум до конца года(да ещё много работы, тривиальная задача написать документацию и то надо на это не мало времени как я уже убедился когда начал описывать, но потом решил не гнаться за двумя зайцами.., а настроить код сначала и потом описать) думаю запущу сайт проекта, буду демонстрировать возможности, искать и обучать разработчиков, и тех кому нужен такой свой инструмент для своих проектов.
timo-71#: Для начала скажите чем xml разбирать будете?
Встроенными средствами php
timo-71#: Интересно вы автолоадер обозвали. Или и там ноу-хау, реально классы "перевозятся"
Автолоадер для подключения классов естественно есть. Грузовик это просто класс который подключается с паттерном singleton и используется в движке и узлах для доступа к другим узлам, данным... Чтобы каждый раз не указывать нужные классы, а только этот грузовик и через него получать доступ к другим.
dj D#: А для чего вообще нужно делать свой движок?
Когда в голове пусто, то не зачем.
А когда у человека есть идея создания оригинального сайта с какими либо сервисами, тогда кастомные решения не подходят нужно разрабатывать с ноля, чтобы меньше тратить времени на разработку придумали фреймворки. А меня лично и существующие фреймворки не устраивают, так как сделаны кучей обормотов, которые прикручивают разные либы и в итоге получается винегрет от которого потом будет мягко говоря тошнить..
jQuery, Angular, React, Vue и тд. скоро будут покуривать. Я разработал свой JS фреймворк под свой инструмент, правда части его модулей могут использоваться и отдельно.
Код такой же как и в самом движке, чёткий и лаконичный, при необходимости подключаются нужные модули, функции.
Например пользователь в структуре указывает что нужен модуль для озвучивания текста. Движок подключает этот скрипт модуля, тот в свою очередь подключает другие, для работы с тегами, спрайт(перемещающий объект) в котором тулбар для настройки озвучивания.
Или например пользовательский интерфейс. Пользователю не надо знать ни команды jQuery, Angular, React, Vue писать самому код чтобы настроить, а просто указать атрибут data-ui="click:classes:elem:colorred" описание пользовательского интерфейса с примерами будет в документации
<a data-ui="click:classes:elem:colorred">Поменять цвет на красный</a>
При клике элементу elem добавится класс colorred. Есть и другие события для взаимодействия с пользователем, это я описал самое простое.
timo-71#: Ну вот, задача - брать х раз в сутки xlsx у поставщика, менять, что изменилось и собрать qr для не суть каких нужд из параметров полученных из экселя на карточке товара. Сами напишете, или все же
Это ж пустяковое дело, конечно сам напишу, будет лаконично и чётко в одном файле, а не куче разных либ как у вас..
MkrtElion#: Можно поинтересоваться, вот ваш супер движок как будет поддерживать работу с картинками? Ну вот к примеру мне нужно будет сделать ресайз картинок и водяной знак наложить.
Ресайзинг картинок делается за несколько минут, да у меня уже есть свой класс для этого, водяные знаки раньше делал сейчас для нового движка тоже при необходимости сделаю.
MkrtElion#: Сами писать будете? Кого то привлечете для написания подобного "модуля"? Или возьмете готовый модуль?
Сам и никак иначе. И тех разработчиков кто будут со мной работать обучу принципам программирования под мой фреймворк.
MkrtElion#: А что на счет RBAC? Будет отдельный модуль? А как его использовать из других модулей для проверки прав?
Это решается довольно просто. У меня нет шаблонизации к которой вы привыкли, у меня просто указывается что нужно разместить на странице и движок всё формирует. Для логистики прав, можно создать сущность где указаны у какой должности какие права. Затем в структуре страницы подключается эта сущность и в зависимости от должности пользователя прописывать что он может делать в самой структуре или вызовом методов узла который будет формировать содержание.
MkrtElion#: Как (ну хотя бы в теории) у вас модули будут между собой интегрироваться?
Сначала немного теории по моему движку.
В движке две основные директории mods(модули) и node(узлы).
Модулями я называю части сайта блог, форум, магазин и др. структуры страниц, бизнес-логика в поддиректории могут быть медиафайлы, картинки, видео и др.
Узлы - это в вашем понимании типа плагина, связка php класса, компоненты (макетов разметки, стилей к этой разметке, JS скрипты если нужны).
В структуре прописывается что нужно разместить на странице и движок всё собирает, я уже об этом говорил.
Теперь отвечу на вопрос. У меня есть несколько классов: для базы данных, драйвер сущности, подключения узлов, компонентов, функций, переменных. Для апи например не нужно таскать все классы поэтому можно подключить что нужно подготовить данные и отдать результат. Движку же в любой момент нужен доступ к какому-то узлу, компоненту, выполнения функции, доступ к данным которые в переменных. Поэтому есть класс грузовик который подключает эти классы. И когда узлу нужен доступ к другому узлу, например разметку компонента, данные и тд. через этот класс грузовика это можно получить.
BuxarNET, Пока на дачу ещё не уехал, скажу ещё кое-что. Я редко даю советы, но понимаю ваше намерение иметь хороший, удобный инструмент для своих проектов, скажу вам вот что. У вас есть 3 пути:
Жить так как жили, заниматься с своими проектами на чём они там написаны, как-то допиливать, вставлять костыли и тд. искать кто вам сможет помочь в этом.
Вы можете согласится с тем что вам что-то сделают за оплату. Балалаечников типа SeVlad`а и ему подобных, даже вы по-моему не воспринимаете всерьёз, потому как понимаете, а они вот не понимают, что предлагаемый им вариант использовать WP для создания гибко настраиваемых проектов мягко говоря смешон. Sly32 и Aisamiery попилят ваш бюджет, накидают разных библиотек, сварганят может что-то, но в последствии это вам обойдётся ещё дороже, будут появляться разные подводные камни, что-то захочется доработать, добавить, изменить, ещё хуже если баги полезут.. и так как ни они, ни вы, не знаете как работают те или иные готовые решения и нужно будет в них разбираться, искать нестыковки и прочее, и прочее. Зависеть от таких гуру "специалистов" со всеми вытекающими..
Ну и пойти своим путём. Я вам сейчас не предлагаю инструмент из коробки, я вам расскажу как всё устроено и как работает, как что можно изменять, добавлять, удалять, технологии которые не сложны в понимании, но облегчат вам жизнь в плане создания новых и поддержке существующих проектов. С этими знаниями думаю вы сами сейчас осознаёте, что создавать и развивать ваши проекты вам будет в удовольствие, а не плюясь на разработчиков того или иного CMS нанимая "гуру спецов" и тд. Конечно это будет не завтра, но если вы готовы вложится в своё такое будущее, то оно с лихвой окупится.
Вы описали свои хотелки. Хотелки это хорошо, но при разработке возникают масса вопросов как это сделать, чтобы было понятно, просто и удобно. Приходится изобретать многие вещи и не по одному разу с переделыванием. Вот если вы более конкретно всё описали тогда нашёлся разработчик. А вам я так думаю на халяву хочется уже готовое решение. Используйте formio, может ещё какой аналог тогда.
Я вот сейчас настраиваю js скрипт UI для своего инструмента и для формы тоже буду делать такой функционал, вопрос стоит как более удобно для пользователя это сделать, приходится многое обдумывать...
Было бы не плохо если у вас по этому поводу были какие-то мысли, но у вас только одни хотелки..
Думаю для ТС вопрос был риторический, желание есть, но он не двигается в направлении к своей цели.
Хотя может уже нашёл какое-то решение.
Как бы так сказать, в пыхе работа с картинками идет через расширения.
Да в php много расширений, но они работают довольно таки быстро. В данном случае применяю GD
Сейчас меня вынуждаете вам что-то доказывать, я не собираюсь вам ничего доказывать. Я занимаюсь чем мне интересно.
Человек ТС ищет инструмент, я предложил в скайпе показать и рассказать что я сделал, всё. Завтра на дачу :) вернее уже сегодня
Их не 1, конкретнее плиз
Зависит от данных. В движке разбираю структуры страниц simplexml. Со сложными данными xml_parser, dom xml тяжеловат и медленнее, по сути можно использовать любую
Если правильно понял, то скорее не "не указывать", а чтобы не плодить клонов, каких то вещей в разных классах.
Да, и для этого тоже.
И когда намечается встряска (передел) ниши?
Никакой встряски и передела ниши не будет. Я же не крупная кампания, я работаю сам по себе. Максимум до конца года(да ещё много работы, тривиальная задача написать документацию и то надо на это не мало времени как я уже убедился когда начал описывать, но потом решил не гнаться за двумя зайцами.., а настроить код сначала и потом описать) думаю запущу сайт проекта, буду демонстрировать возможности, искать и обучать разработчиков, и тех кому нужен такой свой инструмент для своих проектов.
Для начала скажите чем xml разбирать будете?
Встроенными средствами php
Интересно вы автолоадер обозвали. Или и там ноу-хау, реально классы "перевозятся"
Автолоадер для подключения классов естественно есть. Грузовик это просто класс который подключается с паттерном singleton и используется в движке и узлах для доступа к другим узлам, данным... Чтобы каждый раз не указывать нужные классы, а только этот грузовик и через него получать доступ к другим.
А для чего вообще нужно делать свой движок?
Когда в голове пусто, то не зачем.
А когда у человека есть идея создания оригинального сайта с какими либо сервисами, тогда кастомные решения не подходят нужно разрабатывать с ноля, чтобы меньше тратить времени на разработку придумали фреймворки. А меня лично и существующие фреймворки не устраивают, так как сделаны кучей обормотов, которые прикручивают разные либы и в итоге получается винегрет от которого потом будет мягко говоря тошнить..
PS а ещё у него украли jQuery =)))))
jQuery, Angular, React, Vue и тд. скоро будут покуривать. Я разработал свой JS фреймворк под свой инструмент, правда части его модулей могут использоваться и отдельно.
Код такой же как и в самом движке, чёткий и лаконичный, при необходимости подключаются нужные модули, функции.
Например пользователь в структуре указывает что нужен модуль для озвучивания текста. Движок подключает этот скрипт модуля, тот в свою очередь подключает другие, для работы с тегами, спрайт(перемещающий объект) в котором тулбар для настройки озвучивания.
Или например пользовательский интерфейс. Пользователю не надо знать ни команды jQuery, Angular, React, Vue писать самому код чтобы настроить, а просто указать атрибут data-ui="click:classes:elem:colorred" описание пользовательского интерфейса с примерами будет в документации
При клике элементу elem добавится класс colorred. Есть и другие события для взаимодействия с пользователем, это я описал самое простое.
И всё работает как часики 😀
Ну вот, задача - брать х раз в сутки xlsx у поставщика, менять, что изменилось и собрать qr для не суть каких нужд из параметров полученных из экселя на карточке товара. Сами напишете, или все же
Это ж пустяковое дело, конечно сам напишу, будет лаконично и чётко в одном файле, а не куче разных либ как у вас..
Можно поинтересоваться, вот ваш супер движок как будет поддерживать работу с картинками? Ну вот к примеру мне нужно будет сделать ресайз картинок и водяной знак наложить.
Ресайзинг картинок делается за несколько минут, да у меня уже есть свой класс для этого, водяные знаки раньше делал сейчас для нового движка тоже при необходимости сделаю.
Сами писать будете? Кого то привлечете для написания подобного "модуля"? Или возьмете готовый модуль?
Сам и никак иначе. И тех разработчиков кто будут со мной работать обучу принципам программирования под мой фреймворк.
А что на счет RBAC? Будет отдельный модуль? А как его использовать из других модулей для проверки прав?
Это решается довольно просто. У меня нет шаблонизации к которой вы привыкли, у меня просто указывается что нужно разместить на странице и движок всё формирует. Для логистики прав, можно создать сущность где указаны у какой должности какие права. Затем в структуре страницы подключается эта сущность и в зависимости от должности пользователя прописывать что он может делать в самой структуре или вызовом методов узла который будет формировать содержание.
Как (ну хотя бы в теории) у вас модули будут между собой интегрироваться?
Сначала немного теории по моему движку.
В движке две основные директории mods(модули) и node(узлы).
Модулями я называю части сайта блог, форум, магазин и др. структуры страниц, бизнес-логика в поддиректории могут быть медиафайлы, картинки, видео и др.
Узлы - это в вашем понимании типа плагина, связка php класса, компоненты (макетов разметки, стилей к этой разметке, JS скрипты если нужны).
В структуре прописывается что нужно разместить на странице и движок всё собирает, я уже об этом говорил.
Теперь отвечу на вопрос. У меня есть несколько классов: для базы данных, драйвер сущности, подключения узлов, компонентов, функций, переменных. Для апи например не нужно таскать все классы поэтому можно подключить что нужно подготовить данные и отдать результат. Движку же в любой момент нужен доступ к какому-то узлу, компоненту, выполнения функции, доступ к данным которые в переменных. Поэтому есть класс грузовик который подключает эти классы. И когда узлу нужен доступ к другому узлу, например разметку компонента, данные и тд. через этот класс грузовика это можно получить.
BuxarNET, Пока на дачу ещё не уехал, скажу ещё кое-что. Я редко даю советы, но понимаю ваше намерение иметь хороший, удобный инструмент для своих проектов, скажу вам вот что. У вас есть 3 пути: