1 Востаннє редагувалося Monolith (18.12.2016 14:12:08)

Тема: Структура простого рушія блогу на PHP

Доброго дня. Прошу допомоги. Вирішив написати свій блог(з нуля). До цього вже писав простий сайт, але тоді користувався відеокурсами Попова(не кидайте помідорами, самому соромно). Якщо подивитися на той нещасний код, трохи воротить у шлунку. Пройшло вже декілька місяців і якщо мені скажуть щось там додати/змінити я просто щось зламаю собі. Тому, щоб структурувати свої знання у PHP і затіяв написати щось просте, але саме правильно.

Знайшов декілька інтернет-ресурсів на цю тему(статті, відео), але зрозумів, що там або щось заскладне і не підходяще для маленького блогу, або чергова праця учня вищезгаданого Попова. Вирішив писати самостійно.

Зараз в мене структура рушія виглядає так:
index.php(через нього проходять всі запити, він вже далі залежно від введеної адреси за допомогою include підключає потрібний файл) → наприклад home.php, який відповідає за вивід всіх постів, і виглядає приблизно так:

// перевіряємо запити, наприклад щоб правильні значення передавалися в адресі 
// виводимо основні змінні, такі як масив з усіма постами тощо

// якщо все правильно за допомогою include підключаємо шаблон сторінки home
// у іншому випадку підключаємо сторінку 404.html

Тепер шаблон сторінки home, просто звичайний HTML-код з невеличкими вставками PHP, де треба вивести, наприклад пости тощо. І ось головне питання: це правильно?

Просто якщо в майбутньому сторінок буде більше і треба буде, наприклад додати пункт меню у шапці сайту прийдеться змінювати багато файлів. Вирішив винести шапку і підвал сайту в окремі PHP-файли. Трохи подумавши вивів і початок сторінки до тегу <body>, на випадок якщо треба буде щось змінити між тегами <head>. І вийшло, що у головному файлі сторінки home.php в мене декілька інклудів. А у файлі шаблоні залишився тільки HTML-код для основного блоку на сторінці, наприклад блоку з постами. І якщо треба буде щось поміняти у верстці треба буде "бігати" між декількома файлами(блоками). Тому прошу допомоги, підкажіть:
1. Чи це взагалі правильний шлях? Пробував качати чужі рушії, але відкривши їх не розумів більшості коду. Також було забагато зайвого.
2. Як це правильно організувати у вигляді директорій?
Зараз виходить в мене так:

|simpleblog
|--admin
|--style
|----images
|----global.css
|--temlates
|-----blocks
|-------top.php
|-------header.php
|-------footer.php
|-------bottom.php
|-----home_tamplate.php
|--settings
|----database.php // підключення до бази даних
|----functions.php // основні функції
|--index.php
|--.htaccess
|--home.php

Буду надзвичайно радий за допомогу. Парюся вже тиждень і переписую цей свій недорушій третій раз, але хочеться зробити саме правильно... :)

Подякували: 221VOLT, 0xDADA11C72

2

Re: Структура простого рушія блогу на PHP

Якщо добре розібратися з MVC то це дуже не погана штука, з якою буде простіше розширяти і вносити щось нове у твою структуру рушія.

Подякували: Monolith1

3

Re: Структура простого рушія блогу на PHP

Може краще взяти якийсь фреймворк і написати це на ньому? По структурі... я би виніс основний код за межі корня.

Подякували: Monolith1

4 Востаннє редагувалося ping (18.12.2016 17:02:39)

Re: Структура простого рушія блогу на PHP

bvn написав:

Може краще взяти якийсь фреймворк і написати це на ньому?

+1
якщо вже так кортить самому - то варто спершу вивчити те що вже є, щоб створити щось краще .
написати на yii, codeigniter, laravel один і той самий блог.
вивести таблицю - що в якому зроблено добре, що погано.
і, вже після цього - сформулювати вимоги до свого рушія і написати його.

по темі:

|simpleblog
|--admin
|--style
|----images
|----global.css
|--temlates
|-----blocks
|-------top.php
|-------header.php
|-------footer.php
|-------bottom.php
|-----home_tamplate.php
|--settings
|----database.php // підключення до бази даних
|----functions.php // основні функції
|--index.php
|--.htaccess
|--home.php

в одному слові - дві помилки

First, solve the problem. Then, write the code. (c)JJ
Подякували: Monolith1

5 Востаннє редагувалося Monolith (21.12.2016 21:40:08)

Re: Структура простого рушія блогу на PHP

Загалом знайшов, що шукав, тому ділюся раптом хтось буде у схожій ситуації. Відразу кажу, не факт, що метод на 100% правильний, він просто підійшов мені.
Нагадаю, що у мене(в принципі як і на більшості сайтів) на сайті всі сторінки мають спільні блоки(шапка, футер, блок з підключенням стилів/скриптів тощо). Щоб в разі необхідності не треба було бігати між багатьма файлами вирішив винести всі ці спільні блоки до різних файлів. Але тоді вийшло, що приходиться підключати багато файлів плюс редагування верстки перетворюється у каторгу. Пошукавши в Інтернеті випадково наткнувся на цікаве рішення(для мене, я ж новачок :[ ): просто беремо всі ці спільні блоки об'єднуємо у один файл, у мене це вийшов global_template.php, а далі вже при необхідності вставляємо у ньому php-код зі змінними яким вже будемо присвоювати потрібне значення(наприклад масив з постами, текст сторінки тощо) або підключати ще один шаблонний файл який вже містить той блок, який різний на кожній із сторінок.

6

Re: Структура простого рушія блогу на PHP

misha_bondar_2012 написав:

Загалом знайшов, що шукав, тому ділюся раптом хтось буде у схожій ситуації. Відразу кажу, не факт, що метод на 100% правильний, він просто підійшов мені.
Нагадаю, що у мене(в принципі як і на більшості сайтів) на сайті всі сторінки мають спільні блоки(шапка, футер, блок з підключенням стилів/скриптів тощо). Щоб в разі необхідності не треба було бігати між багатьма файлами вирішив винести всі ці спільні блоки до різних файлів. Але тоді вийшло, що приходиться підключати багато файлів плюс редагування верстки перетворюється у каторгу. Пошукавши в Інтернеті випадково наткнувся на цікаве рішення(для мене, я ж новачок :[ ): просто беремо всі ці спільні блоки об'єднуємо у один файл, у мене це вийшов global_template.php, а далі вже при необхідності вставляємо у ньому php-код зі змінними яким вже будемо присвоювати потрібне значення(наприклад масив з постами, текст сторінки тощо) або підключати ще один шаблонний файл який вже містить той блок, який різний на кожній із сторінок.

Те що пан описав називається Layout. Є майже у кожному фреймворку :)

Подякували: bvn, Monolith, 0xDADA11C73

7

Re: Структура простого рушія блогу на PHP

iovchynnikov написав:

Те що пан описав називається Layout. Є майже у кожному фреймворку :)


Виходить сам дійшов... *SCRATCH*

Подякували: 0xDADA11C71