Jump to content

Recommended Posts

Набросал наймспесы https://github.com/simpladevru/simpla-namespace

 

открываем двери в мир https://getcomposer.org  :) будет продолжение...

 

- добавил namespace 

- удалил папку smarty

- удалил PclZip

- подправил проверку лицензии (на локальном с портом есть баг)

 

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

 

далее 

- отвязываемся от глобального наследования

- добавляем вагрант

- переходим на InnoDB

и много другой крути если энтузиазма хватит  :)

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

Top Posters In This Topic

- переходим на InnoDB

 

и чистим код, привет FK :)

 

Вагрант прицеплю ближайшее время, пока наброски через Homestead, 

Миграции подтяну тоже (Phinx, у меня реализовано уже, но надо почистить...)...

и публичную папку, правда со всей админкой :) вот схема: http://forum.simplacms.ru/topic/13401-%D0%BA%D1%82%D0%BE-%D0%BD%D0%B8%D0%B1%D1%83%D0%B4%D1%8C-%D0%B2%D1%8B%D0%BD%D0%BE%D1%81%D0%B8%D0%BB-%D1%82%D0%BE%D1%87%D0%BA%D1%83-%D0%B2%D1%85%D0%BE%D0%B4%D0%B0-%D0%B2-%D0%BF%D0%B0%D0%BF%D0%BA%D1%83-public/page-2?do=findComment&comment=105850

Edited by Maksclub
Link to post
Share on other sites

и чистим код, привет FK :)

 

Вагрант прицеплю ближайшее время, пока наброски через Homestead, 

Миграции подтяну тоже (Phinx, у меня реализовано уже, но надо почистить...)...

и публичную папку, правда со всей админкой :) вот схема: http://forum.simplacms.ru/topic/13401-%D0%BA%D1%82%D0%BE-%D0%BD%D0%B8%D0%B1%D1%83%D0%B4%D1%8C-%D0%B2%D1%8B%D0%BD%D0%BE%D1%81%D0%B8%D0%BB-%D1%82%D0%BE%D1%87%D0%BA%D1%83-%D0%B2%D1%85%D0%BE%D0%B4%D0%B0-%D0%B2-%D0%BF%D0%B0%D0%BF%D0%BA%D1%83-public/page-2?do=findComment&comment=105850

 

fk влетит первую очередь)) дамп почти готов

 

установщик уже переехал на  php 7.1

Edited by DaVinci
Link to post
Share on other sites

Затащил FK https://github.com/simpladevru/simpla-namespace/blob/master/simpla/update/simpla.sql

По коду пересмотрел, удалил что лишнее. Возможно что то упустил... Если что поправим.

 

Теперь забываем о том что бы чистить связи через php и мусоре в базе, все удаляется и обнуляется самой базой, думаем только о привязанных файлах



Красавчик что тут скажешь!
И всё же глобальное наследование осталось(
attachicon.gifScreenshot_1.png

 

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

Edited by DaVinci
Link to post
Share on other sites

 

ну по ссылке Settings.php наследуется от Simpla это не то... 

 

Simpla на данный момент выполняет роль Multiton и все классы наследуется от него. Так вот от extends надо избавиться. Возможно в Simpla пробросить DI хотя на кой тогда вообще simpla.php, хз... очевидно надо экспериментировать а еще лучше если у кого есть мнение на данный счет можно обговорить. Желательно конечно в итоге прийти к скромному Service Locator

Edited by DaVinci
Link to post
Share on other sites

ну по ссылке Settings.php наследуется от Simpla это не то... 

 

Simpla на данный момент выполняет роль Multiton и все классы наследуется от него. Так вот от extends надо избавиться. Возможно в Simpla пробросить DI хотя на кой тогда вообще simpla.php, хз... очевидно надо экспериментировать а еще лучше если у кого есть мнение на данный счет можно обговорить. Желательно конечно в итоге прийти к скромному Service Locator

 

Если я правильно понял, то под DI подразумевается передача объекта simpla в конструктор класса созданный же через Simpla? 

Если так то, но мой взгляд, уже практичней использовать какую нибудь автозагрузку классов или класс simpla с статическими методами:

simpla::api('products')->get_products();
Link to post
Share on other sites

 

 

Если я правильно понял, то под DI подразумевается передача объекта simpla в конструктор класса созданный же через Simpla? 

Если так то, но мой взгляд, уже практичней использовать какую нибудь автозагрузку классов или класс simpla с статическими методами:

simpla::api('products')->get_products();

 

можно так или Simpla:$app->products->get_products() или simpla('products')->get_products() вариантов множество

Edited by DaVinci
Link to post
Share on other sites

Лучше через класс и методы мне кажется. То static в функции как то дико смотрится, а через метод и класс - тогда можно обдумать различные роутеры и расширения типа:

simpla::api('products/petya_products')->get_products();

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

Edited by yr4ik
Link to post
Share on other sites

Лучше через класс и методы мне кажется. То static в функции как то дико смотрится, а через метод и класс - тогда можно обдумать различные роутеры и расширения типа:

simpla::api('products/petya_products')->get_products();

или же сатические маг. методы. 

 

а что это products/petya_products? 

 

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

 

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

 

для того что бы подтянуть что то подобное если уж хочется положить репозиторий в стартовую загрузку приложения simpla::api('products/petya_products')->get_products(); то вероятнее всего я бы использовал интерфейс, который согласует все реализации. 

 

simpla::api(Products::class)->get_products();

 

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

interface Products
{
    public function get_products($filter): array;
    public function count_products($filter): array;
}

class PatyaProducts implements Products
{
    public function get_products($filter): array
    {
       ...
    }
    public function count_products($filter)($filter): array
    {
       ...
    }
}

Simpla::$container->singleton(Products::class, PatyaProducts::class);

или 

Simpla::$container->set(Products::class, function() {
   return new PatyaProducts();
});

 

но это все теория. 

Edited by DaVinci
Link to post
Share on other sites

да и собственно докблок для такой записи simpla::api('products/petya_products') сложно сочинить, разве что прописывать его при каждом вызове

Link to post
Share on other sites

products/petya_products это я так просто написал для примера. Подразумевал поочередный инклуд апишек и конструкт последнего с extends предыдущего.  Ну это так себе конечно. Но можно поковырять в этом направлении. Возможно что то по по расширению функционала можно придумать. 

Link to post
Share on other sites

products/petya_products это я так просто написал для примера. Подразумевал поочередный инклуд апишек и конструкт последнего с extends предыдущего.  Ну это так себе конечно. Но можно поковырять в этом направлении. Возможно что то по по расширению функционала можно придумать. 

 

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

Edited by DaVinci
Link to post
Share on other sites

Ребят, как по мне - вы херней занимаетесь))

Потому что Симпла - она изначальна сделана ДЛЯ КЛИЕНТА   :)

Если любой из вас мне покажет - 3 клиента, которые хотя бы слышали про КОМПОЗЕР - тогда я реально соглашусь, что это надо хоть кому-то...

Link to post
Share on other sites

Ребят, как по мне - вы херней занимаетесь))

Потому что Симпла - она изначальна сделана ДЛЯ КЛИЕНТА    :)

Если любой из вас мне покажет - 3 клиента, которые хотя бы слышали про КОМПОЗЕР - тогда я реально соглашусь, что это надо хоть кому-то...

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

Имхо симпла морально устарела.

Link to post
Share on other sites

Ребят, как по мне - вы херней занимаетесь))

Потому что Симпла - она изначальна сделана ДЛЯ КЛИЕНТА    :)

Если любой из вас мне покажет - 3 клиента, которые хотя бы слышали про КОМПОЗЕР - тогда я реально соглашусь, что это надо хоть кому-то...

 

я могу показать "100" разработчиков которые не возьмутся за поддержку проекта который не способен подтянуть уже ГОТОВЫЕ пакеты которых тысяч в открытом доступе. Это сегодняшняя реальность!

 

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

 

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

 

так кто при таких раскладах в минусе?

Edited by DaVinci
Link to post
Share on other sites

...подтянуть уже ГОТОВЫЕ пакеты которых тысяч в открытом доступе.

 

Звучит заманчиво.

 

А можно пару примеров таких пакетов и способов внедрения? Можно ли с их помощью, решить что-то из реально полезных давно назревших задач для Simpla? Например, интересные задачи:

1. сделать произвольную адресацию без /products и /catalog,

2. реализовать мультиязычность,

3. подключить модуль доставки, скажем, Укр Почты по их API.

Link to post
Share on other sites

Звучит заманчиво.

 

А можно пару примеров таких пакетов и способов внедрения? Можно ли с их помощью, решить что-то из реально полезных давно назревших задач для Simpla? Например, интересные задачи:

1. сделать произвольную адресацию без /products и /catalog,

2. реализовать мультиязычность,

3. подключить модуль доставки, скажем, Укр Почты по их API.

 

в том виде в котором сейчас находится Симпла - комфортно нельзя, только с костылями. но при наличии соответствующей инфраструктуры проэкта почему бы нет https://packagist.org/?query=ukrpo

 

мультиязычность или маршрутизацию это вообще можно не обсуждать, их сотни https://packagist.org/packages/flinebux/ukrposhta-api?query=router

 

очевидно вы еще не пользовались, посмотрите там много интересных вещей

Edited by DaVinci
Link to post
Share on other sites

очевидно вы еще не пользовались, посмотрите там много интересных вещей

Корс слишком стар чтобы понимать новые технологии.
Link to post
Share on other sites

Знае6шь, тут я вдруг согласен с КОРСОМ

Симпла сделана для ЛЮДЕЙ, а не для композера)))

Если кто-то будет типа базарить за композер - я  ЛЮБОМУ желающему - дам поставить КОМПОЗЕР на реальном ХОСТЕ

Вот именно там, где всем ПОХУЮ на все они ПРИБЛИЗИТЕЛЬНО на этом языке оазговаривают

Link to post
Share on other sites

Знае6шь, тут я вдруг согласен с КОРСОМ

Симпла сделана для ЛЮДЕЙ, а не для композера)))

Если кто-то будет типа базарить за композер - я  ЛЮБОМУ желающему - дам поставить КОМПОЗЕР на реальном ХОСТЕ

Вот именно там, где всем ПОХУЮ на все они ПРИБЛИЗИТЕЛЬНО на этом языке оазговаривают

 

давайте любой хостинг

 

странная фраза - симла сделана для людей... все остальное не для людей... Симла сделана на PHP и с тех пор когда она была сделана сам php ППЦ как шагнул в перед!!! На нормальный хостинг ее просто тупо не поставить! То есть нормальные хостинги не для нормальных людей? Очнись скоро 7.1 повсеместно будет а она просто тупо не устанавливается на него))))

 

Где кеш для нормальных людей?

Где транзакции для целостности данных для нормальных людей?

Где эластиксерч для нормальных людей с большим количеством товаров?

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

Где тесты для нормальных людей что бы они сутками не перепроверяли работает ли их сайт после очередной правки?

Где человечески рестапи?

Да блин, где нормальное логирование???

require в каждом файле это для нормальных людей???  :D

И почему сам Денис выкладывает репозиторий в гид? Ведь у заказчиков мозг закипит от одного понимания для чего он нужен и как им пользоваться...

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

... продолжать можно долго... 

 

что конкретно кроется под НОРМАЛЬНЫХ ЛЮДЕЙ я не знаю... наверное для НАИВНЫХ людей. Получается что нормальные люди если им нравится концепция симплы не могут пользоваться нынешним прогрессом... и это нормально. 

 

Для чего тогда в сиплее вообще использовать классы? это ведь не совсем нормально с точки зрения нативного php который вообщем то сам по себе просто шаблонизатор? Или давайте уберем jquery есть голый javascript! А вместо базы будем использовать файлы! И вообще давайте сожжем всех ООП-ников на костре потому что они богохульники, а функциоанльщики вообще не с этой планеты. Просто смех.....

 

Простота это не означает полная деградация...

Edited by DaVinci
Link to post
Share on other sites

в том виде в котором сейчас находится Симпла - комфортно нельзя, только с костылями. но при наличии соответствующей инфраструктуры проэкта почему бы нет https://packagist.org/?query=ukrpo

 

мультиязычность или маршрутизацию это вообще можно не обсуждать, их сотни https://packagist.org/packages/flinebux/ukrposhta-api?query=router

 

очевидно вы еще не пользовались, посмотрите там много интересных вещей

 

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

Edited by phukortsin
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...