Перейти к содержимому


Фото
* * * * * 3 голосов

Simpla (namespace)


  • Чтобы отвечать, сперва войдите на форум
137 ответов в теме

#41 phukortsin

phukortsin
  • Пользователь
  • 471 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 26.07.2018 - 19:24

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

 
Ждем-с...
 

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

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

 

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


Изменено: phukortsin, 26.07.2018 - 19:25


#42 DaVinci

DaVinci
  • Фрилансер
  • 1 139 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 26.07.2018 - 19:37

 
Ждем-с...
 

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

 

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

 

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

 

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

 

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

 

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


Изменено: DaVinci, 26.07.2018 - 21:09


#43 DaVinci

DaVinci
  • Фрилансер
  • 1 139 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 27.07.2018 - 00:29

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

 

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

 

https://github.com/s...ts/db/Query.php

 

пример вызова https://github.com/s...Storage.php#L29

 

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



#44 yr4ik

yr4ik
  • Фрилансер
  • 865 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 27.07.2018 - 02:40

Ну когда то, давно ~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 довольно не слабо отличается в некоторых моментах. Потом как то энтузиазм закончился и забылось и лежит в архивах....


Изменено: yr4ik, 27.07.2018 - 02:44


#45 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 706 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 27.07.2018 - 09:47

Советую ознакомиться https://github.com/j...-Database-Class

#46 DaVinci

DaVinci
  • Фрилансер
  • 1 139 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 27.07.2018 - 10:22

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

 

$query = db()->builder->from('_products')->where(...)

echo (string) clone $query
$count = (clone $query)->count()
$products = $query->all()

 

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

 

а так то хватает пакетов 

 

тут вообще актив рекорд, тразакции https://packagist.or...u/simple-mysqli есть свежие коммиты на гите


Изменено: DaVinci, 27.07.2018 - 10:45


#47 DaVinci

DaVinci
  • Фрилансер
  • 1 139 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 27.07.2018 - 10:35

возможно стоит подключить пакет от laravel  https://packagist.or...minate\Database


Изменено: DaVinci, 27.07.2018 - 10:53


#48 Maksclub

Maksclub

    Помогаю с Симплой и c PHP

  • Фрилансер
  • 1 389 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 27.07.2018 - 11:00

возможно стоит подключить пакет от laravel  https://packagist.or...minate\Database

 

+1

огромное число разработчиков работают с ним



#49 DaVinci

DaVinci
  • Фрилансер
  • 1 139 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 27.07.2018 - 11:22

+1

огромное число разработчиков работают с ним

 

сейчас подключил от ларавеля контейнер, протестировать, и о чудо все работаете как и прежде!)))

 

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


Изменено: DaVinci, 27.07.2018 - 11:25


#50 DaVinci

DaVinci
  • Фрилансер
  • 1 139 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 27.07.2018 - 14:13

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

 

залил конфигурацию с контейнером от ларавеля

 

https://github.com/s.../api/Simpla.php

 

в качестве примера конфигурацию Storage для settings изменил

 

https://github.com/s.../Simpla.php#L65

public function set_settings_storage()
{
    static::$container->singleton(
        StorageSettingInterface::class, SettingsDbStorage::class 
    );
}

 

теперь если посмотреть на сам Settings https://github.com/s...gs/Settings.php

 

в конструкторе ми подтягиваем StorageSettingInterface но нигде не создаем сам клас Storage которому в свою очередь в конструкторе нужен класс Database https://github.com/s...Storage.php#L16 все засасывается автоматом в тот момент когда будет запрошен settings

 

НЕТ нигде магии Аля this->db (ОТКУДА ТЫ ВЗЯЛСЯ?), requere, extends и прочей чуши. чистый, понятный код...


Изменено: DaVinci, 27.07.2018 - 14:24


#51 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 706 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 27.07.2018 - 14:30

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

#52 DaVinci

DaVinci
  • Фрилансер
  • 1 139 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 27.07.2018 - 14:34

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

 

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


Изменено: DaVinci, 27.07.2018 - 14:37


#53 DaVinci

DaVinci
  • Фрилансер
  • 1 139 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 27.07.2018 - 16:37

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

 

тестирую, поделюсь результатами)) 

 

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

 

первым делом я прошел по классу корзины и выделил все места которые взаимодействуют с сессией в отдельный интерфейс

 

https://github.com/s...geInterface.php

 

потом создал класс для Storage, просто скопировал методы с интерфейса и описал их https://github.com/s...sionStorage.php по хоршему этот storage не должен на прямую работать с сессиями потому в качестве примера в конструкторе подтянул класс сессии...

 

Потом подумал что и сама корзина собственно может быть переписана, потому создал для данной реализации отдельную директорию, любые другие корзины можно положить рядом а еще лучше написать для КОРЗИНЫ интерфейс... https://github.com/s...nents/cart/base

 

После зарегистрировал сервис и Storage https://github.com/s.../Simpla.php#L71

 

на переделку ушло 2 часа, не все гладко, это пример... на создание Storage потратил 5 минут, там делать нечего... 

 

ЧТО в итоге - методы интерфейса понятны и легко читаются, за что они отвечают видно сходу, любому последующему программисту просто даже ДУМАТЬ не надо как все делать - у него уже есть готовые методы для того что бы просто описать их.... Ни в корзину и куда еще либо даже лазить не надо... Вообщем как по мне удобно)))

 

Теперь если когда нибудь корс опубликует свои пакеты Storage корзины в куках я смогу подтянуть их и автоматически обновлять. Про то что бы перебрасывать что либо по фтп можно просто забыть...)))

 

 


Изменено: DaVinci, 27.07.2018 - 16:45


#54 DaVinci

DaVinci
  • Фрилансер
  • 1 139 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 27.07.2018 - 18:25

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


Изменено: DaVinci, 27.07.2018 - 18:27


#55 phukortsin

phukortsin
  • Пользователь
  • 471 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 27.07.2018 - 20:11

Теперь если когда нибудь корс опубликует свои пакеты Storage корзины в куках я смогу подтянуть их и автоматически обновлять. Про то что бы перебрасывать что либо по фтп можно просто забыть...)))

 

Попробуем немного помечтать

1. Некто Корс опубликовал свои пакеты.

2. DaVinci получил от заказчика заявку - можно ли сделать то-то и то-то. Стал искать по пакетам - о счастье, есть пакет с почти готовым функционалом, как надо. Но заказчику, конечно, об этом не сказал,  сделал задумчивый вид, глядя в экран и почесывая затылок,  мол, все тут очень сложно, и цену загнул соответственно. А заказчику надо - согласился.

3. DaVinci за пару минут устроил все, затянул разработки Корса. Теперь у заказчика все прекрасно работет, DaVinci побогател, все довольны. Красота!

4. Через некоторое время Корс свой пакет изменил, и к заказчику он теперь тянется в измененном виде. А среди изменений появился и некий хакерский инструмент, чтоб у заказчика стянуть базу или скрипты или что еще. И этот нехороший Корс получил все сведения о сайте. А там могут быть и пароли доступа к финансовым инструментам или много чего еще конфиденциального.

Стало быть, с помощью DaVinci у заказчика ушли на сторону все коммерческие и прочие тайны.

5. Свои хакерские штучки Корс может подключать не постоянно, а изредка на короткие периоды. А отловить его будет довольно проблемно. А если даже и отловят, что будет? Допустим, удалят пакет из репозитория. На сайте доработка действовать не будет. А может, и сайт зависнет крепко.  Заказчик - к DaVinci - выручай, друг. Что будет делать DaVinci? Другой аналогичный пакет искать, или свой писать? И как - бесплатно или новую оплату загнет?

6. Возможны и еще разные варианты...


Изменено: phukortsin, 27.07.2018 - 20:11


#56 DaVinci

DaVinci
  • Фрилансер
  • 1 139 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 27.07.2018 - 20:18

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

Страшно аж жуть....

#57 DaVinci

DaVinci
  • Фрилансер
  • 1 139 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 27.07.2018 - 20:43

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

 

Вероятность того что в пакете могут подсадить вредоносный когд есть, но для этого есть версианирование что сводит риски к нулю. Даже не представляю дурочка который принимает на свой сервер гигабайты статистики с чужих серверов для аналитики в ожидании того что бы ТОТ самый ОДИН заказчик закачал обновление что бы украсть у него пароли))) ПЛЮС пакеты проверяются тысячами пользователей в отдельной случае миллионами (ни одна cms не может похвастаться такой армией тестировщиков к вашему сведению) что дает возможность обнаружить любые огрехи. Можно приводить много доводов в пользу абсурдности ваших аргументов но ВАМ сперва бы понять о чем вы говорите....

 

А вот то что такой злобный тролль как КОРС подсадит вредоносный код в чужой проект гораздо выше, существеннее выше. А кому тестировать??? ))) Только вы знаете что вы там делаете, ваши работы никем не критикуются и не корректируются. А в свете вашей загруженности если у 10 ваших заказчиков обнаружится вредоносный код, даже если вы не знаете что прилетел он с вашего компьютера, получается кому то надо будет м]гко говоря подождать что бы у вас появилось время все исправить  :D  а тем временем как КОРС хаотично бегает по серверам заказчиков в тщетных попытках все исправить кто то несет убытки. а почему так получается? А потому что КОРС ОДИН и больше НИКТО не знает как устроен его код)))) И собственно из тех кто мог бы что то сделать не полезет в код симплы тем более исправлять чужие косяки... И если он не может установить компазер то с консолью у него беда.. логи то он через фтп смотрит... откатить ничего не может... Вообщем беда...

 

И прошу вас в очередной раз - хотите поговорить о безопастности создайте ОТДЕЛЬНУЮ ветку. У вас с понимаем очень плохо... Еще немного и мы начнем говорить о том что бы пришельцы не украли пароли пользователей потому что интернет создан марсианами. КЛИНИКА...


Изменено: DaVinci, 27.07.2018 - 20:54


#58 DaVinci

DaVinci
  • Фрилансер
  • 1 139 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 27.07.2018 - 21:28

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

 

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


Изменено: DaVinci, 27.07.2018 - 21:32


#59 DaVinci

DaVinci
  • Фрилансер
  • 1 139 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 27.07.2018 - 23:52

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

 

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

 

перебросил ветку тест на мастер

 

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

 

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

 

данная работа это не готовое решение.

 

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

 

что удалось получить на выходе 

 

- подключили композер, автозагрузку классов, формируем наше приложение как удобно с любыми влажностями не задумываясь об requere, подключаем сторонние пакеты такие как smarty, все возможные библиотеки такие как curl, pclzip

 

- установили контейнер, вместо "глупого" массива из классов теперь есть мощный инструмент внедрения зависимостей. переоценить его достоинства и удобства просто не возможно. всем кому интересно и кто еще не знает что это можно почитать про Di контейнер и Service Locator. Безумно удобная штука, всеядная, можно хранить от простых строк, массивов, объектов до внедрения объектное в конструктор класса... вообщем круть да и только. 

 

- перевели базу на InnoDB что существенно облегчит жизнь при разработке

 

- в качестве примера сконфигурировали Storage для корзины и настроек 

 

--------------

 

по данной теме у меня все, если будет чем дополнить по namespace отпишусь.

 

--------------

 

КОРС

 

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

 

а дамп базы тут https://github.com/s...date/simpla.sql

 

--------------

 

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


Изменено: DaVinci, 27.07.2018 - 23:59


#60 phukortsin

phukortsin
  • Пользователь
  • 471 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 01.08.2018 - 17:52

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

7. Сделать кеширование SQL-запросов. Вот недавно пользователь интересовался

http://forum.simplac...arch_app=forums
А вообще вопрос интересный, актуальный и на форуме всплывает время от времени.

Может, обсуждаемая разработка может этот вопрос разрешить. Желательно легко и просто - чтоб простому пользователю скопировать пяток магических строк в composer.json - и все заработало...

 

DaVinci, прошу Вас не волноваться и не переживать, если мой пост не понравится.

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

 

Кроме того, пожалуйста, учтите, что я пишу в открытой теме ВСЕМ заинтересованным, а не только Вам одному. Как говорил один киногерой, "Не считайте себя фигурой, равной Черчиллю"...

 

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






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых