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


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

Simpla (namespace)


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

#1 DaVinci

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

Опубликовано 25.07.2018 - 10:31

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

 

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

 

- добавил namespace 

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

- удалил PclZip

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

 

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

 

далее 

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

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

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

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


Изменено: DaVinci, 27.07.2018 - 22:42


#2 Maksclub

Maksclub

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

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

Опубликовано 25.07.2018 - 11:02

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

 

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

 

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

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

и публичную папку, правда со всей админкой :) вот схема: http://forum.simplac...e-2#entry105850


Изменено: Maksclub, 25.07.2018 - 11:05


#3 DaVinci

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

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

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

 

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

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

и публичную папку, правда со всей админкой :) вот схема: http://forum.simplac...e-2#entry105850

 

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

 

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


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


#4 Noxter

Noxter

    Simpla Developer

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

Опубликовано 25.07.2018 - 13:37

Красавчик что тут скажешь!
И всё же глобальное наследование осталось(
Прикрепленный файл  Screenshot_1.png   39,73К   57 раз скачано

Изменено: Noxter, 25.07.2018 - 14:21


#5 DaVinci

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

Опубликовано 25.07.2018 - 14:26

Затащил FK https://github.com/s...date/simpla.sql

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

 

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



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

 

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


Изменено: DaVinci, 25.07.2018 - 14:27


#6 Noxter

Noxter

    Simpla Developer

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

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

Советую обратить внимание на:
1. https://github.com/S...pi/Settings.php
2. https://github.com/S.../api/Config.php

#7 DaVinci

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

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

Советую обратить внимание на:
1. https://github.com/S...pi/Settings.php
2. https://github.com/S.../api/Config.php

 

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

 

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


Изменено: DaVinci, 25.07.2018 - 14:41


#8 Noxter

Noxter

    Simpla Developer

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

Опубликовано 25.07.2018 - 14:43

Да от extends нужно давно избавится.

#9 yr4ik

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

Опубликовано 25.07.2018 - 16:03

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

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

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


#10 DaVinci

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

Опубликовано 25.07.2018 - 16:42

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

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

 

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


Изменено: DaVinci, 25.07.2018 - 16:42


#11 yr4ik

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

Опубликовано 25.07.2018 - 16:54

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

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

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


Изменено: yr4ik, 25.07.2018 - 16:56


#12 DaVinci

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

Опубликовано 25.07.2018 - 16:54

Лучше через класс и методы мне кажется. То 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();
});

 

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


Изменено: DaVinci, 25.07.2018 - 17:19


#13 DaVinci

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

Опубликовано 25.07.2018 - 17:25

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



#14 yr4ik

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

Опубликовано 25.07.2018 - 17:45

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



#15 DaVinci

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

Опубликовано 25.07.2018 - 17:51

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

 

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


Изменено: DaVinci, 25.07.2018 - 17:52


#16 Kosjak76

Kosjak76
  • Модератор
  • 3 777 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 25.07.2018 - 18:01

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

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

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



#17 Noxter

Noxter

    Simpla Developer

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

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

Ребят, как по мне - вы херней занимаетесь))
Потому что Симпла - она изначальна сделана ДЛЯ КЛИЕНТА    :)
Если любой из вас мне покажет - 3 клиента, которые хотя бы слышали про КОМПОЗЕР - тогда я реально соглашусь, что это надо хоть кому-то...

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

#18 DaVinci

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

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

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

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

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

 

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

 

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

 

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

 

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


Изменено: DaVinci, 25.07.2018 - 18:32


#19 phukortsin

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

Опубликовано 25.07.2018 - 18:51

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

 

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


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

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

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

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



#20 DaVinci

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

Опубликовано 25.07.2018 - 18:56

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


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

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

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

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

 

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

 

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

 

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


Изменено: DaVinci, 25.07.2018 - 19:01





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

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