Skip to content

kuzmich321/pilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Пишем свой феймворк
  1. Создаем файловую структуру MVC.
  2. Создаем файл .htaccess : прописываем настройки apache
  3. Создаем точку входа в приложение index.php :
    a) Реализуем автозугрузку в точке входа.
    b) Запускаем сессию.
    с) Разбиваем url на массив
  4. Создаем Router: в методе route разбираем url на имя контроллера, его действие и параметры Пример: http://localhost/pilot/users/show/1
    Имя контроллера UsersController, экшен - show, параметр - 1
  5. Дополняем Application
  6. Создаем Controller
  7. Создаем View таким образом, чтобы в нем были необходимые методы для работы с интерфейсом + метод render
  8. Делаем дефолтный layout + вид для HomeController
  9. Одна из сложных частей: паттерн singleton БД:
    a) Создаем класс DB
    b) Инкапсулируем свойства и метод конструктора
    c) Заполняем класс нужными методами
  10. Создаем класс Model:
    a) Разбираемся со свойствами класса (нужны статические свойства: сама бд, название таблицы + softDeletes)
    b) В конструкторе разбираемся с modelName property
    c) Реализуем методы класса Model,чтобы они были на уровень выше методов класса DB.
  11. Создаем класс Filesystem
  12. Создаем новую директорию под Validators:
    a) Создаем абстрактный класс Validator
    b) Создаем классы валидации, которые нам нужны.
  13. Классы Session и Cookie для непосредственной работы с ними.
  14. Класс Input, в основном для проверки метода запроса.
  • Все функции-хелперы находятся в директории /lib/helpers

    Написание моделей, контроллеров и представлений на основе фреймворка.

  1. HomeController, что редиректит нас на home

  2. Модели пользователя и логина.
    Модель логина принимает только валидацию. Наполняем модель пользователя необходимыми методами.

  3. В моем случае RegisterController берет на себя роль не только регистрации, но и логина (в том числе logout)

  4. ProfileController возвращает представление залогиненного пользователя.

  5. !!! На данный момент логику работы с файлами я оставил в ProfileController (что не есть верно, нарушение принципа SOLID)

  6. Добавлен русский язык (!необходимо в дальнейшем переделать и опробовать другой подход)

    Для того, чтобы запустить проект, необходимо:

  7. Запустить XAMPP

  8. Заходим на /localhost/phpmyadmin/

  9. Создаем БД (у меня) pilot

  10. Сгенерировать таблицу:
    CREATE TABLE users ( id int(11) NOT NULL AUTO_INCREMENT, username varchar(150) NOT NULL, email varchar(150) NOT NULL, fname varchar(150) NOT NULL, lname varchar(150) NOT NULL, password varchar(255) NOT NULL, file varchar(500) DEFAULT NULL, created_at timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), deleted tinyint(4) NOT NULL DEFAULT 0, PRIMARY KEY (id), UNIQUE KEY username (username), UNIQUE KEY email (email) ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4

  11. Если у вас другие данные БД, то их можно спокойно найти в /app/config/config.php

  12. Заходим на /localhost/pilot/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published