PHP, MySQL | Создание универсального стартер-кита для PHP-проек
Dark_AKC , Ну, это понятно, но я себе делаю в первую очередь. Сделать хочется свое старкт потому что я трачу много времени на создание осадочных страниц, мини систем а так хочу чтобы модуль был отдельный типа сайтом или поэтому старткит. Да в своем говнице проще ориентироваться! Почему обнародовал, но просто не так скучно и слушаю советы, как и что и записываю себе в ТС. Так что мой магазин https://flash.in.ua/ (signora.com.ua) хоть и на bottle но на lare 10x тай под себя переделивал из США на Украину
------
88634_20241205225810.png (153.1 Kb)
Скачиваний: 6
________
посл. ред. 05.12.2024 в 23:58; всего 3 раз(а); by wearnings
------
88634_20241205225810.png (153.1 Kb)
Скачиваний: 6
________
посл. ред. 05.12.2024 в 23:58; всего 3 раз(а); by wearnings
Dark_AKC (5 дек 2024, в 23:32)
Тоже занимался такой фигней. Бесполезная трата времени, когда подобные стартер киты ужа давно написаны на всех языках, оптимизированы и протестированы.
Если прям хочется покопаться на низком уровне - как говорили выше, возьми опен сорс модули из какого нибудь laravel и сооруди из них свой "уникальный" проект.
А всяких велосипедостроителей не слушай. Они полжизни тратят на написание того что уже написано. А остальное время тратят на оптимизацию и исправление багов. И в лучшем случае у них получается средне.
В итоге они потратили свое время (деньги клиента) и ничего полезного не сделали
Что-то твой laravel всё оптимизируют, да оптимизируют, а он все остается кривым тормозным гавном, жрущим оперативку. А ты пол-жизни потратил на изучение этого неактуального мертворожденного дерьма, а остальную часть жизни будешь заниматься обновлениями этого дырявого тормозного хлама, и переписыванием своих скриптов под его новые версии, вместо того чтобы спокойно пилить функционал на собственном стабильном ядре. В итоге у тебя получится глючный, тормозной, и очень дорогой hello_world, для которого еще и выделенный сервак нужен (dedicated). А твои клиенты - лохи Тоже занимался такой фигней. Бесполезная трата времени, когда подобные стартер киты ужа давно написаны на всех языках, оптимизированы и протестированы.
Если прям хочется покопаться на низком уровне - как говорили выше, возьми опен сорс модули из какого нибудь laravel и сооруди из них свой "уникальный" проект.
А всяких велосипедостроителей не слушай. Они полжизни тратят на написание того что уже написано. А остальное время тратят на оптимизацию и исправление багов. И в лучшем случае у них получается средне.
В итоге они потратили свое время (деньги клиента) и ничего полезного не сделали
p.s. Вообще, кто бы говорил. Мне говнокод твоего рустатса до сих пор в пьяных кошмарах снится (в свое время черт дернул взять этот скрипт для топа)
________
посл. ред. 06.12.2024 в 14:14; всего 2 раз(а); by Something
wearnings (5 дек 2024, в 23:07)
Something , ну ладно, конечно не шаблонизатор это ну и ладно! А по поводу шаблонизатора, подождать не нужно сделать этого типа, я вот думаю, как улучшить учту все ваши мысли. Есть совети?
# **system** - Основна система та ядро додатка
Тут розміщені базові компоненти, що забезпечують роботу всього проєкту.
- **/functions**: Глобальні функції, які використовуються у всьому проєкті.
- **/config**: Файли конфігурації (база даних, налаштування шляхів тощо).
- **/classes**: Системні класи та файли.
---
# **modules** - Модулі для реалізації функціоналу
Кожен модуль відповідає за конкретну задачу або розділ додатка.
### **Кожен модуль у своїй папці:** `modules/module_name`
- **controllers**: Контролери модуля.
- **models**: Моделі, які використовуються модулем.
- **views**: Уявлення для модуля.
### **Приклади модулів:**
- **modules/blog** — модуль для блогу.
- **modules/shop** — модуль для інтернет-магазину.
---
# **plugins** - Сторонні або додаткові плагіни
Плагіни розширюють функціональність системи.
### **Кожен плагін у своїй папці:** `plugins/plugin_name`
- **assets**: CSS, JS, зображення для плагіна.
- **code**: Логіка плагіна (PHP-код, функції).
### **Приклад:**
- **plugins/seo** — плагін для SEO-оптимізації.
---
# **themes** - Шаблони оформлення та стилізація інтерфейсу
Дозволяють легко змінювати зовнішній вигляд додатка.
### **Кожен шаблон у своїй папці:** `themes/theme_name`
- **assets**: CSS, JS, зображення, шрифти для теми.
- **layouts**: Основні макети (наприклад, `header`, `footer`, `sidebar`).
- **views**: Шаблони сторінок, які підключаються через контролери.
### **Приклад:**
- **themes/default** — стандартна тема.
- **themes/custom** — кастомна тема.
---
# **Переваги цієї структури**
### **Чітке розділення обов'язків**
- Ядро додатка (`livecms`) відокремлене від модулів, плагінів та шаблонів.
- Легко вносити зміни та розширювати функціонал.
### **Підтримка модульності**
- Кожен модуль можна розробляти та тестувати незалежно.
### **Простота оновлення**
- Можна оновлювати ядро (`livecms`) або замінювати модулі/теми без ризику пошкодити всю систему.
### **Підтримка плагінів**
- Легко додавати нові плагіни для розширення функціоналу.
### **Гнучкість у темізації**
- Можна створити декілька тем та перемикатися між ними.
---
# **Рекомендації для покращення**
1. **README.md у кожній папці**
Додайте файл `README.md` у кожну папку, щоб описати її призначення.
2. **Автозавантаження**
Використовуйте автозавантаження для всіх компонентів (наприклад, PSR-4 для класів модулів, плагінів та ядра).
3. **Багатомовність**
Якщо система підтримує багатомовність, додайте папку `livecms/lang` для мовних файлів.
######################################## Папка livecms/functions
# functions
Ця папка містить глобальні функції, які використовуються у всьому проєкті.
## Призначення:
- Забезпечення доступу до загальних функцій.
- Уникнення дублювання коду.
### Приклад:
Файл `helpers.php` — містить функції для роботи з рядками, масивами тощо.
######################################## livecms/config
# config
Ця папка містить файли конфігурації додатка.
## Призначення:
- Зберігання налаштувань бази даних, шляхів, API-ключів тощо.
### Приклад:
Файл `database.php` — параметри підключення до бази даних.
######################################## livecms/classes
# classes
Ця папка містить системні класи для роботи ядра.
## Призначення:
- Логіка для забезпечення роботи базових функцій проєкту.
### Приклад:
Клас `DB.php` — обробка запитів до бази даних.
######################################## modules/module_name
# module_name
Ця папка містить компоненти модуля `module_name`.
## Структура:
- **controllers**: Логіка обробки запитів.
- **models**: Робота з даними.
- **views**: Відображення інформації для користувача.
### Приклад:
Модуль `blog` для управління статтями.
######################################## plugins/plugin_name
# plugin_name
Ця папка містить код плагіна `plugin_name`.
## Структура:
- **assets**: Статичні файли (CSS, JS, зображення).
- **code**: Логіка плагіна.
### Приклад:
Плагін `seo` для оптимізації контенту.
######################################## themes/theme_name
# theme_name
Ця папка містить файли оформлення теми `theme_name`.
## Структура:
- **assets**: CSS, JS, шрифти.
- **layouts**: Основні макети сторінок (header, footer).
- **views**: Шаблони сторінок.
### Приклад:
Тема `default` для базового дизайну.
У тя там архитектура MVC просматривается . Если так дальше пойдет, получится еще один безликий недописанный MVC-движок, каких на гитхабе уже и так тысячи. Пиши функционал с нуля, начиная с index.php, а архитектуру уже сам для него разработаешь по ходу дела, хватит уже оглядываться на чужие велосипеды, и вот эти слова "controller, view, model, layouts" забудь навсегда
Something , ну ладно, конечно не шаблонизатор это ну и ладно! А по поводу шаблонизатора, подождать не нужно сделать этого типа, я вот думаю, как улучшить учту все ваши мысли. Есть совети?
# **system** - Основна система та ядро додатка
Тут розміщені базові компоненти, що забезпечують роботу всього проєкту.
- **/functions**: Глобальні функції, які використовуються у всьому проєкті.
- **/config**: Файли конфігурації (база даних, налаштування шляхів тощо).
- **/classes**: Системні класи та файли.
---
# **modules** - Модулі для реалізації функціоналу
Кожен модуль відповідає за конкретну задачу або розділ додатка.
### **Кожен модуль у своїй папці:** `modules/module_name`
- **controllers**: Контролери модуля.
- **models**: Моделі, які використовуються модулем.
- **views**: Уявлення для модуля.
### **Приклади модулів:**
- **modules/blog** — модуль для блогу.
- **modules/shop** — модуль для інтернет-магазину.
---
# **plugins** - Сторонні або додаткові плагіни
Плагіни розширюють функціональність системи.
### **Кожен плагін у своїй папці:** `plugins/plugin_name`
- **assets**: CSS, JS, зображення для плагіна.
- **code**: Логіка плагіна (PHP-код, функції).
### **Приклад:**
- **plugins/seo** — плагін для SEO-оптимізації.
---
# **themes** - Шаблони оформлення та стилізація інтерфейсу
Дозволяють легко змінювати зовнішній вигляд додатка.
### **Кожен шаблон у своїй папці:** `themes/theme_name`
- **assets**: CSS, JS, зображення, шрифти для теми.
- **layouts**: Основні макети (наприклад, `header`, `footer`, `sidebar`).
- **views**: Шаблони сторінок, які підключаються через контролери.
### **Приклад:**
- **themes/default** — стандартна тема.
- **themes/custom** — кастомна тема.
---
# **Переваги цієї структури**
### **Чітке розділення обов'язків**
- Ядро додатка (`livecms`) відокремлене від модулів, плагінів та шаблонів.
- Легко вносити зміни та розширювати функціонал.
### **Підтримка модульності**
- Кожен модуль можна розробляти та тестувати незалежно.
### **Простота оновлення**
- Можна оновлювати ядро (`livecms`) або замінювати модулі/теми без ризику пошкодити всю систему.
### **Підтримка плагінів**
- Легко додавати нові плагіни для розширення функціоналу.
### **Гнучкість у темізації**
- Можна створити декілька тем та перемикатися між ними.
---
# **Рекомендації для покращення**
1. **README.md у кожній папці**
Додайте файл `README.md` у кожну папку, щоб описати її призначення.
2. **Автозавантаження**
Використовуйте автозавантаження для всіх компонентів (наприклад, PSR-4 для класів модулів, плагінів та ядра).
3. **Багатомовність**
Якщо система підтримує багатомовність, додайте папку `livecms/lang` для мовних файлів.
######################################## Папка livecms/functions
# functions
Ця папка містить глобальні функції, які використовуються у всьому проєкті.
## Призначення:
- Забезпечення доступу до загальних функцій.
- Уникнення дублювання коду.
### Приклад:
Файл `helpers.php` — містить функції для роботи з рядками, масивами тощо.
######################################## livecms/config
# config
Ця папка містить файли конфігурації додатка.
## Призначення:
- Зберігання налаштувань бази даних, шляхів, API-ключів тощо.
### Приклад:
Файл `database.php` — параметри підключення до бази даних.
######################################## livecms/classes
# classes
Ця папка містить системні класи для роботи ядра.
## Призначення:
- Логіка для забезпечення роботи базових функцій проєкту.
### Приклад:
Клас `DB.php` — обробка запитів до бази даних.
######################################## modules/module_name
# module_name
Ця папка містить компоненти модуля `module_name`.
## Структура:
- **controllers**: Логіка обробки запитів.
- **models**: Робота з даними.
- **views**: Відображення інформації для користувача.
### Приклад:
Модуль `blog` для управління статтями.
######################################## plugins/plugin_name
# plugin_name
Ця папка містить код плагіна `plugin_name`.
## Структура:
- **assets**: Статичні файли (CSS, JS, зображення).
- **code**: Логіка плагіна.
### Приклад:
Плагін `seo` для оптимізації контенту.
######################################## themes/theme_name
# theme_name
Ця папка містить файли оформлення теми `theme_name`.
## Структура:
- **assets**: CSS, JS, шрифти.
- **layouts**: Основні макети сторінок (header, footer).
- **views**: Шаблони сторінок.
### Приклад:
Тема `default` для базового дизайну.
Мыши плакали, кололись, но продолжали есть кактус (писать цмс на mvc) (с) . Не существует ни одной нормальной цмс на mvc. Более того, есть примеры того, как нормальные цмс загибались сразу после их переписывания на mvc (dcms 7, johncms 7). На роторе (mvc) вообще ни одного сайта не существует в интернете. А на дцмс 6.6.4 их куча, и все разные. В чем я не прав?)
Something [БАН] (6 дек 2024, в 9:17)
Мыши плакали, кололись, но продолжали есть кактус (писать цмс на mvc) (с) . Не существует ни одной нормальной цмс на mvc. Более того, есть примеры того, как нормальные цмс загибались сразу после их переписывания на mvc (dcms 7, johncms 7). На роторе (mvc) вообще ни одного сайта не существует в интернете. А на дцмс 6.6.4 их куча, и все разные. В чем я не прав?)
В том что застрял в 2010м году?)
Мыши плакали, кололись, но продолжали есть кактус (писать цмс на mvc) (с) . Не существует ни одной нормальной цмс на mvc. Более того, есть примеры того, как нормальные цмс загибались сразу после их переписывания на mvc (dcms 7, johncms 7). На роторе (mvc) вообще ни одного сайта не существует в интернете. А на дцмс 6.6.4 их куча, и все разные. В чем я не прав?)
Galtsev.T (6 дек 2024, в 9:27)
В том что застрял в 2010м году?)
Это твой единственный аргумент?)В том что застрял в 2010м году?)
Так-то MVC была придумана в 1978 году, и примерно тогда же и устарела).
Получается, ты в 1978 застрял?)
________
посл. ред. 06.12.2024 в 09:42; всего 3 раз(а); by Something
Кто ж виноват что с 2010 года не вышло ни одной нормальной цмс? Возможно, индусы, активно и публично дрочащие на mvc, хотя сами же на ней нихрена сделать так и не смогли?
Надо писать на php 5 как любитель dcms664)
depo (6 дек 2024, в 12:21)
Надо писать на php 5 как любитель dcms664)
Зачем новый движок писать на устаревшей версии php?)Надо писать на php 5 как любитель dcms664)
Кстати. Ты так и не зарегистрировал свой хостинг официально?
depo , Расмешил, нужно сейчас писать на php 8.3 -> 8.4