Aisamiery

Aisamiery
Рейтинг
319
Регистрация
12.04.2015

На конструкторе вряд ли. Задача не сверх сложная для того кто разбирается так то

ArbNet:

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

Начнём с того, что вы видимо даже не понимаете что такое драйвер. Вы пытаетесь изобразить ОРМ, но с сущностями вы работает на стороне клиента, а пытаетесь что то делать на стороне сервера. Именно по этому я и склоняюсь к тому, что у вас каша. PHP богатый язык, там можно и в рефлексию и динамически объявлять классы и ещё много всего, что позволит решить задачу "не приходилось под каждую сущность писать классы". Но это опять же делается на стороне PHP, просто классы пишет система за разработчика. Но у этого есть минус в производительности труда, так как те жи IDE теряют связь и не могут подсказать какие у сущности есть поля, так как сущность динамичная. У вас теряется возможность тестирования (но костылями можно обойти), у вас теряется возможность проверки сущности и полиморфизма. В вашем подходе больше минусов чем плюсов, сделать генерацию классов за пользователя - задача банальная надо просто посмотреть варианты https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/tools.html#entity-generation

ArbNet:

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

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

ArbNet:
Вот я не хочу быть как основная масса

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

---------- Добавлено 25.05.2020 в 13:44 ----------

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

Вы в очередной раз какую то хрень придумываете. Зачем вам разные таблицы, что мешает сложить в одну где будет ID | ENTITY_ID | PROP_ID | INT | TEXT | DATE

Сделать слой абстракции, где манипулировать типами, то есть базовый тип FieldText у вас будет знать что его параметр лежит в колонке TEXT, дальше вам нужен только маппинг данных с простого запроса sql в объект PHP. То есть, одним запросом вы выберете все данные с таблички относящиеся к определенному объекту (ENTITY_ID), а сам объект уже разрулит с какой колонки ему брать данные или в какую записывать.

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

---------- Добавлено 23.05.2020 в 20:53 ----------

Вам ещё стоит почитать про нормальные формы, в частности 5NF

---------- Добавлено 23.05.2020 в 20:56 ----------

ArbNet:
Кому то другому не стал бы отвечать, но у вас пытливый ум и обширные знания. Я долгое время не занимался веб разработками поэтому что и не знал забыл, сейчас учусь практически заново, конечно я плаваю в теме. И у меня манера сразу приступать к делу и по ходу уже решать разные задачки как это сделать. Есть идеи, но нет знаний в данном случае конструкций запросов mysql.

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

Boull:
думаю, не обязательно смотреть сайт.
можно спросить проще. старая тема Revista Nueva.

Ещё раз говорю, это никакой роли не играет.

Берете в руки css и js (напильник) и "пилите, Шура, пилите".

Все ненужные блоки скрываются, колонки убираются на гамбургеры, а центральная часть делается резиновой, вот вам и моб версия чего угодно.

Boull:

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

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

Вопросы то ли от не знания, то ли от того что сильно плаваете в теме.

Первый вопрос - процедура. Зачем вы вызываете процедуры в MySQL? Передайте в запрос сразу нужные вам параметры с клиента.

Второй вопрос совсем абстрактный, как говорится очень интересно, но нифига не понятно. Есть такое понятие как Внешний ключ (Foreign key), погуглите, возможно вы это ищите.

ArbNet:

А перед обращением к объекту его разве не надо создать
$DB=new DB(); echo $DB::method();

Статические методы и свойства - это методы и свойства класса, а не объекта. Создавать объект не обязательно.

ArbNet:
Если бы был знак $ перед $DB::query вопросов нет

::query - да, статичный метод
К статичному методу класса обращаются через self::$query или извне $DB::$query

А вот это "DB::query" мне не понятно стало

Извиняюсь, конечно, последнее время писал только на JS, PHP подзабывать стал

Ладно давай на примере раз уж так все запущено.



class DB
{
public static $property = 'It\'s static property class DB';

public static function method()
{
return 'It\'s static method class DB';
}
}

echo DB::$property; // It's static property class DB

echo DB::method(); // It's static method class DB

Так понятнее или надо найти 10 отличий?

PS. Хреново когда не знаешь, да еще и забудешь

ArbNet:
А мне интересно стало "DB::query" у вас объект базы данных присвоен PHP константе? по типу: define('DB',DataBase::Instance());

Ну как так то? Ну блин?

Я так надеялся что вы хотя бы смогли освоить php более менее, фиг с ним что не хватило мозгов на освоение готовых либ, но язык то язык?

PS Это статический метод класса. Какой же у вас уровень интересно?

PPS. Константами могут быть только скалярные типы и массив (с 5.6)

PPPS Обратил внимание, что точно то же самое вызвали в объявлении константы... даже не знаю что думать

Вообще сделать можно, но с напильником, так как вы новичок, то вам скорее всего никак.

Всего: 4110