Giter Club home page Giter Club logo

bookstore's Introduction

Проект книжного магазина на чистом PHP

Описание

Этот проект представляет собой книжный магазин, реализованный с использованием чистого PHP. Основной акцент в разработке был сделан на применении лучших практик программирования и архитектурных подходов. Мы стремились создать чистую, модульную и масштабируемую систему, следуя принципам SOLID, DRY, KISS и YAGNI. Архитектура проекта построена на паттерне MVC (Model-View-Controller), что позволяет четко разграничивать бизнес-логику, работу с данными и пользовательский интерфейс.

Проект включает в себя как административную часть, так и публичную часть сайта. В административной части реализованы CRUD операции для управления сущностями авторов и книг. Публичная часть сайта позволяет пользователям просматривать список авторов и их книг. Кроме того, проект поддерживает выдачу данных в формате JSON через RESTful API, обеспечивая тем самым гибкость в интеграции с другими системами и сервисами.

в данном проекте использовались подходы и практики, характерные для фреймворка Laravel (такие как система маршрутизации, Eloquent ORM, работа с запросами и ответами), важно отметить, что весь код был разработан самостоятельно, без прямого использования или анализа исходного кода Laravel. Выбор названий компонентов и классов был обусловлен их общепринятой функциональностью и узнаваемостью в PHP-сообществе, что облегчает понимание и поддержку кода.

Особенности Реализации:

  • Чистый PHP без использования фреймворков: Проект реализован с использованием только нативного PHP, без применения сторонних фреймворков, что обеспечивает высокую скорость работы и понимание базовых принципов программирования на PHP.
  • Соблюдение принципов SOLID: Код написан с учетом принципов SOLID, что делает его легко поддерживаемым и расширяемым.
  • Паттерн MVC: Проект строго следует паттерну MVC, что способствует разделению ответственности и упрощению разработки.
  • Модульная архитектура: Каждая часть системы разработана как отдельный модуль, что позволяет легко добавлять новые функции и компоненты.
  • Репозиторий паттерн: Для работы с базой данных используется паттерн репозитория, обеспечивающий абстракцию доступа к данным и упрощение тестирования.
  • CRUD операции: Полное управление сущностями авторов и книг через административный интерфейс.
  • RESTful API: Поддержка RESTful API для интеграции с другими сервисами и приложениями.
  • Тестирование API: Включена коллекция Postman для удобства тестирования API.

Запуск и Развертывание

Проект настроен для работы с Apache сервером и использует MySQL в качестве системы управления базами данных. Для запуска необходимо выполнить миграции базы данных и, при необходимости, заполнить базу начальными данными с помощью сидов. В документации проекта приведены подробные инструкции по настройке и запуску.

Для локальной разработки рекомендуется настроить виртуальный хост, указывающий на директорию public/ проекта, чтобы обеспечить правильную обработку входящих запросов сервером.

Пример конфигурации для Apache:

<VirtualHost *:80>
    ServerName bookstore.local
    DocumentRoot "путь/к/директории/проекта/public"

    <Directory "путь/к/директории/проекта/public">
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Установка

# Клонирование репозитория

  git clone https://github.com/Vanya9422/bookstore.git && cd bookstore

# Установка зависимостей

  composer install

# Настройка переменных окружения

  cp .env.example .env

# Настройте параметры подключения к базе данных в .env

# Запуск миграций

  vendor/bin/phinx migrate

# Заполните базу данных начальными данными с помощью сидеров:

  vendor/bin/phinx seed:run -s DatabaseSeeder

# Или для запуска конкретных сидеров:

  vendor/bin/phinx seed:run -s RoleSeeder && vendor/bin/phinx seed:run -s AdminAndUserSeeder

Для Авторизации

Login - [email protected] 
Password - password

Контактная Информация

Если у вас возникнут вопросы или понадобится помощь, обращайтесь к Вани.

bookstore's People

Contributors

vanya9422 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.