Loading...
PHP, MySQL | Создание универсального стартер-кита для PHP-проек
wearnings (9 дек 2024, в 1:19)
Something , Я рассмотрел твое предожения - по твоему совету решил использовать пространство имен. Я немного изменил текущий код, чтобы он соответствовал этому! Я хотел бы знать твое мнение. Думаю, сегодня вечером загружу его на GitHub!
> nucleus
Креативность - это конечно хорошо, но "nucleus" - это уже перебор, я это слово ни разу не встречал в движках. "core" будет более уместно и привычнее =)

У тя в Autoloader.php находятся функции, которые будут вызваны всего лишь в одном месте на весь скрипт, поэтому нет смысла заворачивать их код в функцию =)
https://github.com/lifesheets/sandbox/
Something , Ну это понятно, ну всеже что-то заотелось сделать так! Креативность это тоже почерк, хотелось сровнять перфеоналистоим

Ну типа:
Project
├─ nucleus
│ ├─ classes
│ │ ├─ helpers
│ │ ├─ libraries
│ │ ├─ services
│ │ ├─ Constants.php
│ ├─ config
│ ├─ data
│ └─ Autoloader.php
├──plugins
│ └── example
├──themes
│ ├─ default
│ └─ mobile
├─ storage
│ └─ [файлы, данные]
├─ .htaccess
└─ index.php
Something , ну а так что скажешь по коду в общем?
что-то еще может сменить, кроме автолоадера.

И дай совет как лучше сделать логиррования
Something , Я использую вызов статических методов через class::get, но мне посоветовали использовать class->get для лучшего соблюдения принципов объектно-ориентированного программирования. Возможно ли использовать екземплярри только в критических случаях, где это действительно необходимо, и ограничить их применение в остальных случаях?
wearnings (9 дек 2024, в 9:24)
Something , Я использую вызов статических методов через class::get, но мне посоветовали использовать class->get для лучшего соблюдения принципов объектно-ориентированного программирования. Возможно ли использовать екземплярри только в критических случаях, где это действительно необходимо, и ограничить их применение в остальных случаях?
Да. Статические методы производительнее и говнокода меньше, ООП в php на мой взгляд вообще не нужен, разве что для понтов =)
wearnings (9 дек 2024, в 9:19)
Something , ну а так что скажешь по коду в общем?
что-то еще может сменить, кроме автолоадера.

И дай совет как лучше сделать логиррования
А что ты собираешься логировать? Посещаемость? Для этого подойдет счетчик liveinternet)
Something , во время разработки смотри скрин

https://github.com/lifesheets/sandbox/blob/main/nucleus/classes/libr...oggerHandler.php

Изображение

------
88639_20241209084637.png (425.8 Kb)
Скачиваний: 20
wearnings (9 дек 2024, в 9:16)
Something , Ну это понятно, ну всеже что-то заотелось сделать так! Креативность это тоже почерк, хотелось сровнять перфеоналистоим

Ну типа:
Project
├─ nucleus
│ ├─ classes
│ │ ├─ helpers
│ │ ├─ libraries
│ │ ├─ services
│ │ ├─ Constants.php
│ ├─ config
│ ├─ data
│ └─ Autoloader.php
├──plugins
│ └── example
├──themes
│ ├─ default
│ └─ mobile
├─ storage
│ └─ [файлы, данные]
├─ .htaccess
└─ index.php
|- assets
|-- themes
|-- js
|-- css
|- cache
|- core
|-- classes
|--- subclasses_example1
|--- subclasses_example2
|--- some_class1.php
|--- some_class2.php
|-- plugins
|-- start.php
|-- constants.php
|- modules
|- plugins
|- uploads
|- .htaccess
|- index.php

И вместо вот этого ужаса
private static array $namespaceMap = [
'Nucleus' => 'nucleus/classes', // Простір імен для Nucleus
'NucleusHelpers' => 'nucleus/classes/helpers', // Простір імен для Helpers
'NucleusLibraries' => 'nucleus/classes/libraries', // Простір імен для Libraries
'NucleusServices' => 'nucleus/classes/services', // Простір імен для Services
];

Сделать что-то типа


spl_autoload_register(function ($class) {
$class = preg_replace('#^\\\\c\\\\#', '', $class);
$class = str_replace('\\', '/', $class);
require root . '/classes/' . $class . '.php';
});


Автоматизировать короче всё по максимуму, чтобы индусского кода не было :-D
________
посл. ред. 09.12.2024 в 11:06; всего 5 раз(а); by Something
Something ,

private static array $namespaceMap = [
'Nucleus' => 'nucleus/classes', // Простір імен для Nucleus
'Nucleus\\Helpers' => 'nucleus/classes/helpers', // Простір імен для Helpers
'Nucleus\\Libraries' => 'nucleus/classes/libraries', // Простір імен для Libraries
'Nucleus\\Services' => 'nucleus/classes/services', // Простір імен для Services
];

Я кастом таким образом убрал папку classes
Онлайн: 5
Время:
Gen. 0.1135
(c) ByMAS.RU 2010-2025