Jump to content

Recommended Posts

А можно какой-нибудь пример? Не могли бы Вы для примера выбрать из тысяч пакетов один средней сложности и написать, как его "подтянуть". По возможности, чтобы владельцу сайта на Simpla с опытом установки доработок было понятно. Пусть хотя бы и с костылями - потерпим, на этом форуме доработки без костылей - редкость...

 

откройте исходник сиплы Design.php и посмотрите как подключается smarty и посмотрите как подключен smarty в моем репозитории, вот вам и пример.

 

но если я захочу подключить другой шаблонизатора без изменения кода смой симплы то без глобальных костылей это сделать не получится. Скорее с этим спорить вы не будете. А вот заказчику ОЧЕНЬ надо. скорее всего вы потратите минимум неделю (ну ладно, пару дней точно) что бы переписать все. Я потрачу на это 2 минуты. 

 

Теперь давайте представим что в нашей cms мы создали ряд интерфейсов один их которых Design в котором описаны обязательные методы которые используются во всем приложении

 

Что делаем для того что бы одной строкой подменить шаблонизатор? 

 

interface Design
{
    public function assign($array): array;
    ...
}

class Smarty implements Design
{
    public function assign($array): array
    {
       ...
    }
}

class Twig implements Design
{
    public function assign($array): array
    {
       ...
    }
}

вот та самая одна строка

Simpla::$container->singleton('design', Twig::class);

теперь при вызове $simpla->design будет доступен twig

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

 

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

Edited by DaVinci
Link to post
Share on other sites
  • Replies 236
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

залил примитивный вариант контейнера (пока о внутренней реализации не думал)

 

отвязял апи и view от simpla

 

https://github.com/simpladevru/simpla-namespace/tree/test-container

 

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

 

$product_url = $this->request->get('product_url', 'string'); //только во view
$product_url = request()->get('product_url', 'string');
$product_url = Simpla::$app->request->get('product_url', 'string') // заюзает неймспейс
$product_url = simpla()->request->get('product_url', 'string');
$product_url = simpla('request')->get('product_url', 'string');

 

упразднил 

index.php - точка входа

IndexView - маршрутизирующий

View - абстрактный, необходимые обвесы для view

 

теперь у каждого класса своя ответственность а IndexView не перебрасывает нас в index если view вернул false и обратно. Убрал синглтон. Добавил NotFoundView. мог что то упустить и накосячить

Edited by DaVinci
Link to post
Share on other sites

залил примитивный вариант контейнера (пока о внутренней реализации не думал)

 

отвязял апи и view от simpla

 

https://github.com/simpladevru/simpla-namespace/tree/test-container

 

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

 

$product_url = $this->request->get('product_url', 'string');
$product_url = request()->get('product_url', 'string');
$product_url = Simpla::$app->request->get('product_url', 'string')
$product_url = simpla()->request->get('product_url', 'string');
$product_url = simpla('request')->request->get('product_url', 'string');

 

упразднил

index.php

IndexView

View

Забей на тролей, не трать на них своё время.

Продолжай в том же духе, у тебя превосходный потенциал.

Link to post
Share on other sites

Simpla для людей никто это не оспорит. Но люди ставят сайт начинают работать и у них начинаются новые прихоти. И тут уже обычные люди отходят на сторону и начинают искать программистов для той или иной задачи (если нет какой то oneclick модульности). И это факт и так будет! И поэтому удобство для фрилансеров - никак нельзя считать бесполезным, я бы сказал что это даже в приоритете. Ведь большой процент именно у фрилансеров спрашивает какой движок лучше взять. Обычному человеку побоку какой там код, пока ему не покажешь результат. Я встречал таких клиентов которые платили за модули не малые деньги но то что там было - просто нет слов. Симпла удобна и проста но она реально устарела (и речь не о нехватке модуля заказать звонок и тд). Ядро начинает терять позиции и тут не поспоришь. Тут нужно искать альтернативы и обновления. Я, и не только я, хотел бы видеть больше информации от Пикусова по стадиям разработки (если таковы ведутся). Потому что создание альтернативных версий - это беда. Это порождение будущей каши. Нынешняя сборка - это хорошая перспектива, но она на энтузиазме одного человека. А этого очень даже может не хватить. Но я, в связи с таким застоем, выступаю больше за такие альтернативы чем бестолковое наращивание модулей под эгидой "для клиента". Лучше иметь хорошее ядро для разработки чем мамонта с модулей. 

Link to post
Share on other sites

Обновил контейнер - появились инъекции

 

В конструкторе любого апи можно достучаться до контейнера таким образом

 

public function __constructor(Products $products)
{
   $this->products = $products;
}
Edited by DaVinci
Link to post
Share on other sites

Пробую увидеть Вашу систему в действии. Устанавливаю так:

1. Копирую файлы (установщика не нашел),

2. Подключаю стандартную базу Simpla (дампа базы в Вашем дистрибутиве не нашел),

3. При запуске получаю ошибку Failed opening required 'bootstrap/../vendor/autoload.php' in bootstrap\app.php on line 5,

4. В дистрибутиве не видно vendor/autoload.php, и вообще не видно папки vendor.

 

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

Link to post
Share on other sites

 

3. При запуске получаю ошибку Failed opening required 'bootstrap/../vendor/autoload.php' in bootstrap\app.php on line 5,

4. В дистрибутиве не видно vendor/autoload.php, и вообще не видно папки vendor.

 

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

 

Это вы выставяете картину со стороны пользователя (примеряя роль его) или реальный вопрос от вас?

Конечно эта тема вынесена пока что для обсуждения идей и для призыва РАЗРАБОТЧИКОВ

Любой разработчик в 2018 году знает про composer, тех, кто не знает (именно из разработчиков)  -- не берем в расчет и оставляем ждать инструкций...

Edited by Maksclub
Link to post
Share on other sites

Пробую увидеть Вашу систему в действии. Устанавливаю так:

1. Копирую файлы (установщика не нашел),

2. Подключаю стандартную базу Simpla (дампа базы в Вашем дистрибутиве не нашел),

3. При запуске получаю ошибку Failed opening required 'bootstrap/../vendor/autoload.php' in bootstrap\app.php on line 5,

4. В дистрибутиве не видно vendor/autoload.php, и вообще не видно папки vendor.

 

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

Ахах)))

Корс ты далёк от этих всех новый технологий.

Link to post
Share on other sites

Это вы выставяете картину со стороны пользователя (примеряя роль его) или реальный вопрос от вас?

Конечно эта тема вынесена пока что для обсуждения идей и для призыва РАЗРАБОТЧИКОВ

Любой разработчик в 2018 году знает про composer, тех, кто не знает (именно из разработчиков)  -- не берем в расчет и оставляем ждать инструкций...

 

вот лично мне не понятен смысл всех этих манипуляций. Я понимаю плюсы Гита а вот Gulp и всех прекомпрессоров нет. Это надо быть извращенцем использовать gulp для простой симплы )

Link to post
Share on other sites

вот лично мне не понятен смысл всех этих манипуляций. Я понимаю плюсы Гита а вот Gulp и всех прекомпрессоров нет. Это надо быть извращенцем использовать gulp для простой симплы )

 

Откуда при общении про композер появился галп?

К слову и  он полезен тоже, и не важно Симпла или нет... он собирает JS код (и много чего еще)

 

А композер -- ну в 2018 году скачивать архивчики...

Edited by Maksclub
Link to post
Share on other sites

я думаю обсуждать композер нет смысла, особенно если вы не знаете что это. Это как обсуждать стоит ли использовать PHP на проекте который работает на PHP. Для людей которые знают что такое композер подобные обсуждения звучат именно так. Подавляющее большенство "разработчиков", а по сути просто пользователей определенной cms, не умеют ставить apache или nginx, но они не перестают им пользоваться. Для такой категории стоит просто предоставить мануал или установщик.

Edited by DaVinci
Link to post
Share on other sites

но если я захочу подключить другой шаблонизатора без изменения кода смой симплы то без глобальных костылей это сделать не получится. Скорее с этим спорить вы не будете. А вот заказчику ОЧЕНЬ надо. скорее всего вы потратите минимум неделю (ну ладно, пару дней точно) что бы переписать все. Я потрачу на это 2 минуты.

 

Не понял Вашего юмора.

 

Возникал  однажды подобный вопрос. Решился редактированием одной стороки, вместо

require_once(dirname(dirname(__FILE__)).'/Smarty/libs/Smarty.class.php');

написали

require_once(dirname(dirname(__FILE__)).'/Smarty2/libs/Smarty.class.php');

 

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

 

Ушло на все про все менее часа, включая возникновение задачи, обсуждение путей решения, кофе-брейк, реализацию и тестирование.

Откуда Вы взяли дни и даже недели, для меня загадка...

 

И есть еще аспект у вопроса. Вы, конечно, можете переключите шаблонизатор почти мгновенно. А текущий шаблон на Smarty Вы тоже переделаете на шаблон Twig за те же 2 минуты?

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

 

 

Link to post
Share on other sites

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

 

require_once(dirname(dirname(__FILE__)).'/Smarty2/libs/Smarty.class.php'); - вот это вот вы показывайте своим заказчикам, такой колхоз лично меня не впечатляет

 

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

 

к примеру, вы сейчас можете хранить сессии в файлах, а кеше? нет не можете, надо колхозить...

 

если у вас и у заказчика будет выбор с какими компонентами работать и при этом ВЫ не останетесь ЕДИНСТВЕННЫМ человеком который понимает что в коде происходит все будут в плюсе

 

По сули любая модифицированная  Симпла это отдельная, альтернативная версия, которую знает только тот человек который ее модифицировал. ни каких стандартов нет.

 

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

Edited by DaVinci
Link to post
Share on other sites

Это все конечно хорошо, а вот после обновления какого-нибудь компонента - не упадет случаем весь сайт?

Ни разу с таким не сталкивались?

Link to post
Share on other sites

Это все конечно хорошо, а вот после обновления какого-нибудь компонента - не упадет случаем весь сайт?

Ни разу с таким не сталкивались?

 

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

 

Дебаг через F5 это конечно забавно но как то не профессионально 

Edited by DaVinci
Link to post
Share on other sites

...я привел абсолютно адекватный пример необходимости подмены компонентов. По реализации самого шаблона речи не идет...

 

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

 

...в данном случае Deisign это сервис который должен работать предсказуемо с любым шаблонизатором

 

Утопия полная. Попробуйте сначала составить список ВСЕХ шаблонизаторов ВСЕХ версий. А потом посмотрите на него повнимательнее и решите - будете ли Вы проверять детально, как работает с каждым. И сколько времени понадобится на такую проверку...

 

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

 

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

Link to post
Share on other sites

привожу еще один пример  :)  Про магические файлы подобного плана все знают SettingsOld.php или __Settings.php. все по причине не согласованности интерфейса ядра. Как быть если кто то хочет сделать свою реализацию хранения настроек? к примеру в кеше, в массиве... Все идут переписывать сервис! Как победить это? Интерфейсы в помощь, к примеру. как реализовано хранение ВООБЩЕ не важно главное что бы сервис отвечал по предсказуемым методам

 

https://github.com/simpladevru/simpla-namespace/tree/test-container/api/components/settings

 

сервис https://github.com/simpladevru/simpla-namespace/blob/test-container/api/Settings.php ТУТ и ломаться теперь просто нечему

 

интерфейс storage https://github.com/simpladevru/simpla-namespace/blob/test-container/api/components/settings/StorageSettingInterface.php

 

хранение в массиве https://github.com/simpladevru/simpla-namespace/blob/test-container/api/components/settings/SettingsArrayStorage.php

 

хранение в базе https://github.com/simpladevru/simpla-namespace/blob/test-container/api/components/settings/SettingsDbStorage.php

 

регистрируем сервис 

 

https://github.com/simpladevru/simpla-namespace/blob/ac45257cd0bad6b295e7afe510e8f3bd30b56b9c/api/Simpla.php#L52

 

Теперь данный сервис тестируется и не зависит ни от чего!!! А свои компоненты "тестируйте сами" что бы сайт не падал, главное ядро ведет себя предсказуемо!



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

 

Утопия полная. Попробуйте сначала составить список ВСЕХ шаблонизаторов ВСЕХ версий. А потом посмотрите на него повнимательнее и решите - будете ли Вы проверять детально, как работает с каждым. И сколько времени понадобится на такую проверку...

 

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

 

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

 

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

 

и по многим компонентам есть стандарты

Edited by DaVinci
Link to post
Share on other sites

точно такой же пример sms информером - как переключить оператор? точно так же как настройки, вместо то что бы изобретать все новые и новые модули которые подключаются не понятно где и не понятно как если не вы делали этот модуль смс. достаточно сделать  интерфейс смс с методом send и ВСЕ! теперь каждый последующий программист котрый будет писать сендер просто установит его в конфигураторе 

 

По такому же принципу переключается место хранение корзине - в сессии, в куках, в базе. не надо ЛОМАТЬ сервис корзины, достаточно написать storage. и передать его в сервис

 

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

Edited by DaVinci
Link to post
Share on other sites

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

Хотелось бы что-то посерьезнее.
В этой теме в посте #19 предлагались три из многих актуальных для Simpla задачи. Ни одну из них, насколько я понял, Ваша разработка помочь решить не может. Попробую предложить еще:

 

4. Вот свежая тема с 1С, вопрос вроде бы не особо громоздкий:

http://forum.simplacms.ru/topic/13638-1%D1%81-%D0%B8-%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%B2/

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

 

5. Вот еще недавний вопрос про картинки на поддомене:

http://forum.simplacms.ru/topic/13641-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B8-%D0%BD%D0%B0-%D0%BF%D0%BE%D0%B4%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%B5/

 

И тот пользователь наверняка 2 часа согласится подождать...

 

6. Есть еще старый вопрос, возникал на форуме неоднократно - убрать токены у изображений. Попыток много было, но хорошего решения пока никто не дал. Может, Ваша метода разрешит вопрос быстро и легко раз и навсегда? Если на форуме разные программисты за несколько лет хорошего решения не дали, а Вы за пару минут "подтянете" решение, то Вашей разработке цены не будет...

Link to post
Share on other sites

Спасибо, пример со способом хранения Settings содержательный.

Но все-таки вопрос - где хранить эти Settings - для программиста мелковат, а для владельца магазина непонятен и несущественен.

 

Хотелось бы что-то посерьезнее.

В этой теме в посте #19 предлагались три из многих актуальных для Simpla задачи. Ни одну из них, насколько я понял, Ваша разработка помочь решить не может. Попробую предложить еще:

 

4. Вот свежая тема с 1С, вопрос вроде бы не особо громоздкий:

http://forum.simplacms.ru/topic/13638-1%D1%81-%D0%B8-%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%B2/

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

 

5. Вот еще недавний вопрос про картинки на поддомене:

http://forum.simplacms.ru/topic/13641-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B8-%D0%BD%D0%B0-%D0%BF%D0%BE%D0%B4%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%B5/

 

И тот пользователь наверняка 2 часа согласится подождать...

 

6. Есть еще старый вопрос, возникал на форуме неоднократно - убрать токены у изображений. Попыток много было, но хорошего решения пока никто не дал. Может, Ваша метода разрешит вопрос быстро и легко раз и навсегда? Если на форуме разные программисты за несколько лет хорошего решения не дали, а Вы за пару минут "подтянете" решение, то Вашей разработке цены не будет...

 

думаете заказчиков волнует токен в изображении?

 

картинки на поддомене решаются очень просто, чуть позже сами все увидите

по синхронизации тоже все достаточно просто решается. все так же - интерфейсы. 

 

и да если вы так заботитесь о заказчиках - подумайте кто быстрее и качественнее выполнит задачу - программист который пишет нативно (вы в частности) или сотни серьезных разработчиков которые могут поддерживать объектно ориентированный код...

 

и хватит срать в теме! как решить то, как решить это... я ведь не справочник, тема тут не об этом. Вы думаете есть самообучающиеся программы которые умеют решать не стандартные задачи? Нет, нет таких, есть инструменты которые позволяют решать задачи комфортнее. И у меня нет задачи написать cms которая думает ЗА ВАС! если считаете себе программистом, разработчиком - ну так вперед, решайте задачи а не занимайтесь ерундой! Детский сад, вопросы ребенка 5 лет.  

Edited by DaVinci
Link to post
Share on other sites

картинки на поддомене решаются очень просто, чуть позже сами все увидите

 

Ждем-с...

 

и да если вы так заботитесь о заказчиках - подумайте кто быстрее и качественнее выполнит задачу - программист который пишет нативно (вы в частности) или сотни серьезных разработчиков которые могут поддерживать объектно ориентированный код...

 

Вы и учите, как коммунисты крестьян в 30-х годах: объединяйтесь, ребята в виртуальный колхоз, в репозитории много-много добра, Вам самим столько не написать, только качайте - и будет Вам светлое будущее. Это все верно, но только в теории. А на практике если в репозитории вирус или просто ошибка? И спросить не с кого, если что...

 

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

 

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

 

Edited by phukortsin
Link to post
Share on other sites

 

Ждем-с...

 

 

Вы и учите, как коммунисты крестьян в 30-х годах: объединяйтесь, ребята в виртуальный колхоз, в репозитории много-много добра, Вам самим столько не написать, только качайте - и будет Вам светлое будущее. Это все верно, но только в теории. А на практике если в репозитории вирус или просто ошибка? И спросить не с кого, если что...

 

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

 

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

 

 

стабильность и безопасность тестировать вам как разработчику ровно как и те поделки которые вы затягиваете со своего компьютера. То что работа с композера с многотысячными скачиваниями и ПОСТОЯННОЙ поддержкой более стабильна и безопасна в этом нет даже ни доли сомнения. https://packagist.org/?query=zend вы считаете что эти компоненты менее стабильны чем ваши работы?  обратите внимание на количество скачиваний. вам столько не прожить что бы установить хоть одну свою работу на такое количество проектов хотя бы одного пакета. И вы точно не сможете более качественно проверить свою работы чем миллионы пользователей которые этими компонентами пользуются.

 

Просто ЧУШЬ пишите, с ваших слов сыпется песок и чем то пахнет...

 

они обращаются к вам по причине того что людей желающих работать с сиплой все меньше и меньше... Эта просто не серьезно ковырять нативный php, такую практику просто НИГДЕ больше не применить! Любому начинающему фриленсеру просто не интересно и бесперспективно работать с сиплой - она специалисту не дает развития а та практика которую получаешь при работе с ней это максимум работа с массивами, такие специалисты не востребованы. и те кто застряли на симпле скорее всего так и останутся на ней в лучшем случае. Потому как порог вхождения на любой другой проект, другую cms, слишком велик по сравнению с симплой

 

phukortsin, я прошу вас не засорять тему, если хочется поговорить на тему композера, ООП и прочего - создайте ветку и говорите там. Не засоряйте тему! Очень вас прошу! Ваше мнение как специалиста не представляет ни какого интереса для меня.

Edited by DaVinci
Link to post
Share on other sites

============================================

 

залил наброски query bulder (Fluent Interface)

 

https://github.com/simpladevru/simpla-namespace/blob/test-container/api/components/db/Query.php

 

пример вызова https://github.com/simpladevru/simpla-namespace/blob/3dadacbf0c49a60af1cec32854ac1d88aa8cac01/api/components/settings/SettingsDbStorage.php#L29

 

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

Link to post
Share on other sites

Ну когда то, давно ~13-14 году пытался сделать универсальную библиотеку для работы с бд. mysql (различные методы) + sqlite.

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

 
Примеры запросов:
db::sql("SELECT * FROM __users WHERE uid=%d", $uid)->get_row(ARRAY_A);
db::sql('DELETE FROM __options WHERE option_name=%s', $option_name)->exec();
db::sql('SELECT option_name, option_value FROM __options WHERE autoload=1')->cache(24)->get_assoc();
db::sql("SELECT contentid FROM __contents WHERE ident IN (%A) AND type=%s", $ident, $type)->get_var_array();

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

но потом уперся в sqlite. Если разные версии mysql еще как то сдружил. То синтаксис sql для sqlite довольно не слабо отличается в некоторых моментах. Потом как то энтузиазм закончился и забылось и лежит в архивах....

Edited by yr4ik
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...