DaVinci Опубликовано 25 июля, 2018 Автор Жалоба Поделиться Опубликовано 25 июля, 2018 (изменено) А можно какой-нибудь пример? Не могли бы Вы для примера выбрать из тысяч пакетов один средней сложности и написать, как его "подтянуть". По возможности, чтобы владельцу сайта на 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 или пользуйтесь композером. если преимущество такого подхода для вас не очевидны то мне больше не интересно поддерживать с вами дальнейшую дискуссию Изменено 25 июля, 2018 пользователем DaVinci Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 25 июля, 2018 Автор Жалоба Поделиться Опубликовано 25 июля, 2018 (изменено) залил примитивный вариант контейнера (пока о внутренней реализации не думал) отвязял апи и 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. мог что то упустить и накосячить Изменено 25 июля, 2018 пользователем DaVinci Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 25 июля, 2018 Жалоба Поделиться Опубликовано 25 июля, 2018 залил примитивный вариант контейнера (пока о внутренней реализации не думал) отвязял апи и 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.phpIndexViewViewЗабей на тролей, не трать на них своё время.Продолжай в том же духе, у тебя превосходный потенциал. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 25 июля, 2018 Жалоба Поделиться Опубликовано 25 июля, 2018 Simpla для людей никто это не оспорит. Но люди ставят сайт начинают работать и у них начинаются новые прихоти. И тут уже обычные люди отходят на сторону и начинают искать программистов для той или иной задачи (если нет какой то oneclick модульности). И это факт и так будет! И поэтому удобство для фрилансеров - никак нельзя считать бесполезным, я бы сказал что это даже в приоритете. Ведь большой процент именно у фрилансеров спрашивает какой движок лучше взять. Обычному человеку побоку какой там код, пока ему не покажешь результат. Я встречал таких клиентов которые платили за модули не малые деньги но то что там было - просто нет слов. Симпла удобна и проста но она реально устарела (и речь не о нехватке модуля заказать звонок и тд). Ядро начинает терять позиции и тут не поспоришь. Тут нужно искать альтернативы и обновления. Я, и не только я, хотел бы видеть больше информации от Пикусова по стадиям разработки (если таковы ведутся). Потому что создание альтернативных версий - это беда. Это порождение будущей каши. Нынешняя сборка - это хорошая перспектива, но она на энтузиазме одного человека. А этого очень даже может не хватить. Но я, в связи с таким застоем, выступаю больше за такие альтернативы чем бестолковое наращивание модулей под эгидой "для клиента". Лучше иметь хорошее ядро для разработки чем мамонта с модулей. Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 26 июля, 2018 Автор Жалоба Поделиться Опубликовано 26 июля, 2018 (изменено) Обновил контейнер - появились инъекции В конструкторе любого апи можно достучаться до контейнера таким образом public function __constructor(Products $products) { $this->products = $products; } Изменено 26 июля, 2018 пользователем DaVinci Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 26 июля, 2018 Жалоба Поделиться Опубликовано 26 июля, 2018 Пробую увидеть Вашу систему в действии. Устанавливаю так: 1. Копирую файлы (установщика не нашел), 2. Подключаю стандартную базу Simpla (дампа базы в Вашем дистрибутиве не нашел), 3. При запуске получаю ошибку Failed opening required 'bootstrap/../vendor/autoload.php' in bootstrap\app.php on line 5, 4. В дистрибутиве не видно vendor/autoload.php, и вообще не видно папки vendor. Объясните, пожалуйста, чайнику попроще и попонятнее, как все это запустить... Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 26 июля, 2018 Жалоба Поделиться Опубликовано 26 июля, 2018 (изменено) 3. При запуске получаю ошибку Failed opening required 'bootstrap/../vendor/autoload.php' in bootstrap\app.php on line 5,4. В дистрибутиве не видно vendor/autoload.php, и вообще не видно папки vendor. Объясните, пожалуйста, чайнику попроще и попонятнее, как все это запустить... Это вы выставяете картину со стороны пользователя (примеряя роль его) или реальный вопрос от вас?Конечно эта тема вынесена пока что для обсуждения идей и для призыва РАЗРАБОТЧИКОВЛюбой разработчик в 2018 году знает про composer, тех, кто не знает (именно из разработчиков) -- не берем в расчет и оставляем ждать инструкций... Изменено 26 июля, 2018 пользователем Maksclub Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 26 июля, 2018 Жалоба Поделиться Опубликовано 26 июля, 2018 Пробую увидеть Вашу систему в действии. Устанавливаю так:1. Копирую файлы (установщика не нашел),2. Подключаю стандартную базу Simpla (дампа базы в Вашем дистрибутиве не нашел),3. При запуске получаю ошибку Failed opening required 'bootstrap/../vendor/autoload.php' in bootstrap\app.php on line 5,4. В дистрибутиве не видно vendor/autoload.php, и вообще не видно папки vendor. Объясните, пожалуйста, чайнику попроще и попонятнее, как все это запустить...Ахах)))Корс ты далёк от этих всех новый технологий. Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 26 июля, 2018 Жалоба Поделиться Опубликовано 26 июля, 2018 Это вы выставяете картину со стороны пользователя (примеряя роль его) или реальный вопрос от вас?Конечно эта тема вынесена пока что для обсуждения идей и для призыва РАЗРАБОТЧИКОВЛюбой разработчик в 2018 году знает про composer, тех, кто не знает (именно из разработчиков) -- не берем в расчет и оставляем ждать инструкций... вот лично мне не понятен смысл всех этих манипуляций. Я понимаю плюсы Гита а вот Gulp и всех прекомпрессоров нет. Это надо быть извращенцем использовать gulp для простой симплы ) Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 26 июля, 2018 Жалоба Поделиться Опубликовано 26 июля, 2018 (изменено) вот лично мне не понятен смысл всех этих манипуляций. Я понимаю плюсы Гита а вот Gulp и всех прекомпрессоров нет. Это надо быть извращенцем использовать gulp для простой симплы ) Откуда при общении про композер появился галп?К слову и он полезен тоже, и не важно Симпла или нет... он собирает JS код (и много чего еще) А композер -- ну в 2018 году скачивать архивчики... Изменено 26 июля, 2018 пользователем Maksclub Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 26 июля, 2018 Автор Жалоба Поделиться Опубликовано 26 июля, 2018 (изменено) я думаю обсуждать композер нет смысла, особенно если вы не знаете что это. Это как обсуждать стоит ли использовать PHP на проекте который работает на PHP. Для людей которые знают что такое композер подобные обсуждения звучат именно так. Подавляющее большенство "разработчиков", а по сути просто пользователей определенной cms, не умеют ставить apache или nginx, но они не перестают им пользоваться. Для такой категории стоит просто предоставить мануал или установщик. Изменено 26 июля, 2018 пользователем DaVinci Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 26 июля, 2018 Жалоба Поделиться Опубликовано 26 июля, 2018 но если я захочу подключить другой шаблонизатора без изменения кода смой симплы то без глобальных костылей это сделать не получится. Скорее с этим спорить вы не будете. А вот заказчику ОЧЕНЬ надо. скорее всего вы потратите минимум неделю (ну ладно, пару дней точно) что бы переписать все. Я потрачу на это 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 минуты?Придуманный Вами пример для применения - замена шаблонизатора - очень уж искусственный. Что-то я не видел заказчиков, которые каждое утро меняют шаблоны. Не говоря уж о шаблонизаторах. Менять платье каждый день - это больше для женщин. Хотелось бы пример чего-то более полезного в практическом плане... Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 26 июля, 2018 Автор Жалоба Поделиться Опубликовано 26 июля, 2018 (изменено) Корс, я привел абсолютно адекватный пример необходимости подмены компонентов. По реализации самого шаблона речи не идет, это в соседнюю ветку по макетам... Меня интересует больше то как сконфигурировать приложение без изменения самих сервисов. в данном случае Deisign это сервис который должен работать предсказуемо с любым шаблонизатором require_once(dirname(dirname(__FILE__)).'/Smarty2/libs/Smarty.class.php'); - вот это вот вы показывайте своим заказчикам, такой колхоз лично меня не впечатляет вы их не видели потому что они боятся лишний раз что то попросить потому как это оборачивается в месяцы работы и большие растраты. быть может если бы ядро симплы было немного гибче такие запросы были бы. потому как при работает с любым фреймворков это абсолютно обычное дело... к примеру, вы сейчас можете хранить сессии в файлах, а кеше? нет не можете, надо колхозить... если у вас и у заказчика будет выбор с какими компонентами работать и при этом ВЫ не останетесь ЕДИНСТВЕННЫМ человеком который понимает что в коде происходит все будут в плюсе По сули любая модифицированная Симпла это отдельная, альтернативная версия, которую знает только тот человек который ее модифицировал. ни каких стандартов нет. Моя цель создать хоть поверхностные стандарты, даже если я останусь единственным человеком который этой сборкой будет пользоваться. Никого за уши я в эту ветку не тяну Изменено 26 июля, 2018 пользователем DaVinci Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 26 июля, 2018 Жалоба Поделиться Опубликовано 26 июля, 2018 Это все конечно хорошо, а вот после обновления какого-нибудь компонента - не упадет случаем весь сайт?Ни разу с таким не сталкивались? Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 26 июля, 2018 Автор Жалоба Поделиться Опубликовано 26 июля, 2018 (изменено) Это все конечно хорошо, а вот после обновления какого-нибудь компонента - не упадет случаем весь сайт?Ни разу с таким не сталкивались? вот для того что бы такого не происходило и придумали интерфесы. если вы написали кривой компонент то это беда не ядра а разработчика. но на такой случай есть тесты - которые показывают что конкретный сервис работает не корректно. Дебаг через F5 это конечно забавно но как то не профессионально Изменено 26 июля, 2018 пользователем DaVinci Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 26 июля, 2018 Жалоба Поделиться Опубликовано 26 июля, 2018 ...я привел абсолютно адекватный пример необходимости подмены компонентов. По реализации самого шаблона речи не идет... Чистая абстракция. Вы очень довольны тем, что за 2 минуты можете сменить шаблонизатор. Это все, конечно хорошо. Только что потом заказчику скажете - сайт упал, потому что шаблон надо переписывать заново. Поэтому иди-ка ты, заказчик, куда подальше в соседнюю ветку... ...в данном случае Deisign это сервис который должен работать предсказуемо с любым шаблонизатором Утопия полная. Попробуйте сначала составить список ВСЕХ шаблонизаторов ВСЕХ версий. А потом посмотрите на него повнимательнее и решите - будете ли Вы проверять детально, как работает с каждым. И сколько времени понадобится на такую проверку... Если уж Вы заговорили о колхозе, то сама идея - колхоз полный. Это все хорошо смотрелось бы для блога Васи Пупкина, но использовать для интернет-магазина неизвестно что взятое из общедоступного колхоза-репозитория - это ж, кроме рисков падения сайта, как справедливо замечено, еще и риски для безопасности возникают. А для программиста это, конечно, забава приятная, ничего не скажешь... Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 26 июля, 2018 Автор Жалоба Поделиться Опубликовано 26 июля, 2018 (изменено) привожу еще один пример Про магические файлы подобного плана все знают 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 секунд и по многим компонентам есть стандарты Изменено 26 июля, 2018 пользователем DaVinci Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 26 июля, 2018 Автор Жалоба Поделиться Опубликовано 26 июля, 2018 (изменено) точно такой же пример sms информером - как переключить оператор? точно так же как настройки, вместо то что бы изобретать все новые и новые модули которые подключаются не понятно где и не понятно как если не вы делали этот модуль смс. достаточно сделать интерфейс смс с методом send и ВСЕ! теперь каждый последующий программист котрый будет писать сендер просто установит его в конфигураторе По такому же принципу переключается место хранение корзине - в сессии, в куках, в базе. не надо ЛОМАТЬ сервис корзины, достаточно написать storage. и передать его в сервис это колхоз? ну знаете ли... ваше дело как вам писать код... еще раз говорю - я вас за уши сюда не тяну, пользоваться данной сборкой не принуждаю. что вы до сих пор тут делаете со своими комментариями? Изменено 26 июля, 2018 пользователем DaVinci Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 26 июля, 2018 Жалоба Поделиться Опубликовано 26 июля, 2018 Спасибо, пример со способом хранения 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. Есть еще старый вопрос, возникал на форуме неоднократно - убрать токены у изображений. Попыток много было, но хорошего решения пока никто не дал. Может, Ваша метода разрешит вопрос быстро и легко раз и навсегда? Если на форуме разные программисты за несколько лет хорошего решения не дали, а Вы за пару минут "подтянете" решение, то Вашей разработке цены не будет... Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 26 июля, 2018 Автор Жалоба Поделиться Опубликовано 26 июля, 2018 (изменено) Спасибо, пример со способом хранения 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 лет. Изменено 26 июля, 2018 пользователем DaVinci Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 26 июля, 2018 Жалоба Поделиться Опубликовано 26 июля, 2018 (изменено) картинки на поддомене решаются очень просто, чуть позже сами все увидите Ждем-с... и да если вы так заботитесь о заказчиках - подумайте кто быстрее и качественнее выполнит задачу - программист который пишет нативно (вы в частности) или сотни серьезных разработчиков которые могут поддерживать объектно ориентированный код... Вы и учите, как коммунисты крестьян в 30-х годах: объединяйтесь, ребята в виртуальный колхоз, в репозитории много-много добра, Вам самим столько не написать, только качайте - и будет Вам светлое будущее. Это все верно, но только в теории. А на практике если в репозитории вирус или просто ошибка? И спросить не с кого, если что... Вам уже выше в теме задавали вопросы по поводу стабильности и безопасности того, что Вы "затянете", Вы по этим вопросам отмалчиваетесь. Видимо, глубоко верите в качество тех программных решений, которые есть в интернете - разве специалисты ООП могут написать плохо... А практически эти заказчики пока что обращаются именно ко мне, а не к "сотням серьезных разработчиков которые могут поддерживать объектно ориентированный код". И не всегда успеваю обслужить их запросы. И чтоб никому не отказывать, цены держу не совсем маленькие. Впрочем, успехов Вам персонально и Вашим сотням... Изменено 26 июля, 2018 пользователем phukortsin Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 26 июля, 2018 Автор Жалоба Поделиться Опубликовано 26 июля, 2018 (изменено) Ждем-с... Вы и учите, как коммунисты крестьян в 30-х годах: объединяйтесь, ребята в виртуальный колхоз, в репозитории много-много добра, Вам самим столько не написать, только качайте - и будет Вам светлое будущее. Это все верно, но только в теории. А на практике если в репозитории вирус или просто ошибка? И спросить не с кого, если что... Вам уже выше в теме задавали вопросы по поводу стабильности и безопасности того, что Вы "затянете", Вы по этим вопросам отмалчиваетесь. Видимо, глубоко верите в качество тех программных решений, которые есть в интернете - разве специалисты ООП могут написать плохо... А практически эти заказчики пока что обращаются именно ко мне, а не к "сотням серьезных разработчиков которые могут поддерживать объектно ориентированный код". И не всегда успеваю обслужить их запросы. И чтоб никому не отказывать, цены держу не совсем маленькие. Впрочем, успехов Вам персонально и Вашим сотням... стабильность и безопасность тестировать вам как разработчику ровно как и те поделки которые вы затягиваете со своего компьютера. То что работа с композера с многотысячными скачиваниями и ПОСТОЯННОЙ поддержкой более стабильна и безопасна в этом нет даже ни доли сомнения. https://packagist.org/?query=zend вы считаете что эти компоненты менее стабильны чем ваши работы? обратите внимание на количество скачиваний. вам столько не прожить что бы установить хоть одну свою работу на такое количество проектов хотя бы одного пакета. И вы точно не сможете более качественно проверить свою работы чем миллионы пользователей которые этими компонентами пользуются. Просто ЧУШЬ пишите, с ваших слов сыпется песок и чем то пахнет... они обращаются к вам по причине того что людей желающих работать с сиплой все меньше и меньше... Эта просто не серьезно ковырять нативный php, такую практику просто НИГДЕ больше не применить! Любому начинающему фриленсеру просто не интересно и бесперспективно работать с сиплой - она специалисту не дает развития а та практика которую получаешь при работе с ней это максимум работа с массивами, такие специалисты не востребованы. и те кто застряли на симпле скорее всего так и останутся на ней в лучшем случае. Потому как порог вхождения на любой другой проект, другую cms, слишком велик по сравнению с симплой phukortsin, я прошу вас не засорять тему, если хочется поговорить на тему композера, ООП и прочего - создайте ветку и говорите там. Не засоряйте тему! Очень вас прошу! Ваше мнение как специалиста не представляет ни какого интереса для меня. Изменено 26 июля, 2018 пользователем DaVinci Цитата Ссылка на сообщение Поделиться на другие сайты
DaVinci Опубликовано 26 июля, 2018 Автор Жалоба Поделиться Опубликовано 26 июля, 2018 ============================================ залил наброски 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 не все методы реализованы, если у кого есть опыт в написании подобных вещей можете поделится Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 26 июля, 2018 Жалоба Поделиться Опубликовано 26 июля, 2018 (изменено) Ну когда то, давно ~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 довольно не слабо отличается в некоторых моментах. Потом как то энтузиазм закончился и забылось и лежит в архивах.... Изменено 26 июля, 2018 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 27 июля, 2018 Жалоба Поделиться Опубликовано 27 июля, 2018 Советую ознакомиться https://github.com/joshcam/PHP-MySQLi-Database-Class Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.