PHP, MySQL | Создание универсального стартер-кита для PHP-проек
wearnings (9 дек 2024, в 1:19)
Something , Я рассмотрел твое предожения - по твоему совету решил использовать пространство имен. Я немного изменил текущий код, чтобы он соответствовал этому! Я хотел бы знать твое мнение. Думаю, сегодня вечером загружу его на GitHub!
> nucleusSomething , Я рассмотрел твое предожения - по твоему совету решил использовать пространство имен. Я немного изменил текущий код, чтобы он соответствовал этому! Я хотел бы знать твое мнение. Думаю, сегодня вечером загружу его на GitHub!
Креативность - это конечно хорошо, но "nucleus" - это уже перебор, я это слово ни разу не встречал в движках. "core" будет более уместно и привычнее =)
У тя в Autoloader.php находятся функции, которые будут вызваны всего лишь в одном месте на весь скрипт, поэтому нет смысла заворачивать их код в функцию =)
Something , Ну это понятно, ну всеже что-то заотелось сделать так! Креативность это тоже почерк, хотелось сровнять перфеоналистоим
Ну типа:
Project
├─ nucleus
│ ├─ classes
│ │ ├─ helpers
│ │ ├─ libraries
│ │ ├─ services
│ │ ├─ Constants.php
│ ├─ config
│ ├─ data
│ └─ Autoloader.php
├──plugins
│ └── example
├──themes
│ ├─ default
│ └─ mobile
├─ storage
│ └─ [файлы, данные]
├─ .htaccess
└─ index.php
Ну типа:
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 на мой взгляд вообще не нужен, разве что для понтов =)
Something , Я использую вызов статических методов через class::get, но мне посоветовали использовать class->get для лучшего соблюдения принципов объектно-ориентированного программирования. Возможно ли использовать екземплярри только в критических случаях, где это действительно необходимо, и ограничить их применение в остальных случаях?
А что ты собираешься логировать? Посещаемость? Для этого подойдет счетчик liveinternet)
Something , во время разработки смотри скрин
https://github.com/lifesheets/sandbox/blob/main/nucleus/classes/libr...oggerHandler.php
------
88639_20241209084637.png (425.8 Kb)
Скачиваний: 6
https://github.com/lifesheets/sandbox/blob/main/nucleus/classes/libr...oggerHandler.php
------
88639_20241209084637.png (425.8 Kb)
Скачиваний: 6
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
|- assetsSomething , Ну это понятно, ну всеже что-то заотелось сделать так! Креативность это тоже почерк, хотелось сровнять перфеоналистоим
Ну типа:
Project
├─ nucleus
│ ├─ classes
│ │ ├─ helpers
│ │ ├─ libraries
│ │ ├─ services
│ │ ├─ Constants.php
│ ├─ config
│ ├─ data
│ └─ Autoloader.php
├──plugins
│ └── example
├──themes
│ ├─ default
│ └─ mobile
├─ storage
│ └─ [файлы, данные]
├─ .htaccess
└─ index.php
|-- 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
];
'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';
});
Автоматизировать короче всё по максимуму, чтобы индусского кода не было
________
посл. ред. 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
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