sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux

Верно ли я пишу код?

Доброго времени суток, практикую написание скриптов на ООП и с использованием паттенра MVC. Скрипт можно посмотреть тут https://github.com/Sanek-OS9/My-project рабочий сайт тут gamer-play.ru
Однозначного ответа верно или не верно дать нельзя, но оценку поставить можно на ваше усмотрение. Хочу услышать мнение о структуре самого скрипта, как я распихал контроллеры, методы, шаблон и прочее, как организовал сам шаблон, как пишу контроллеры, методы, как написал роутер, понятно ли пишу код.
  • Вопрос задан
  • 461 просмотр
Решения вопроса 3
1) Для модели сделать базовую модель и наследоваться от неё
2) Для контроллера сделать базовый контроллера и наследоваться от него.
3) Сделать доступным только одну папку и в неё уже редиректить
4) Добавить composer
5) Использовать PSR4

Лучше подсмотреть структуру у https://github.com/laravel/laravel
Ответ написан
Комментировать
@AlikDex
По структуре не скажу ничего. Она ужасна. Но для начала пойдет, шишки понабивать ))
там какой-то класс
<?php
namespace Models;

/**
 * Profile не знаю что это, но точно не модель. Больше похоже на репозиторий какой-то своеобразный
 */
class Profile // тут было бы неплохо extends \Сore\base\Model или чота типа
{
    /*
     * Получаем профиль по ID
     */
    /**
     * Получение профиля пользователя по идентификатору.
     * @param int $id идентификатор запрашиваемого пользователя
     * @return mixed
     */
    public static function getProfileItemById(int $id)
    {
        //$id = (int) $id; // ?? выпиливаем. раз уж пхп семь в требованиях то смотри выше

        $q = \Core\DB::me()->prepare("SELECT `id` FROM `users` WHERE `id` = ? LIMIT 1");
        $q->execute([$id]);

        if ($profileItem = $q->fetch()) {
            return new User($profileItem['id']);
        }

        //return new User(0); // ?? это че? Пустой объект?
        return null; // или false; не нашлось же ниче.
    }

    /*
     * Получаем всех пользователей
     */
    /**
     * Получение полного списка зарегистрированных пользователей.
     * @return array
     */
    public static function getUsersList() :array
    {
        $users = [];
        $result = \Core\DB::me()->query("SELECT `id` FROM `users`")->fetchAll();

        if (!empty($result)) { // а если не найдено? тогда форычь ошибку выдаст, т.к. форычить нечего. Проверяем.
            foreach ($result AS $user) {
                //$ank = new User($user['id']); // ?? К чему это переприсваивание?
                //$users[] = $ank;
                $users[] = new User($user['id']); // тут внутри класса запрос да? ))
            }
        }

        return $users;
    }
}


В общем небольшие замечания )
Последний метод public static function getUsersList() не понятно зачем тут нужен. Эта хрень к профилю уж точно не относится.
И побольше комментариев, и информативности. Также контроль типов использовать по полной, если требования от 7.0 пыха. Ну и неплоха было бы включать всякие варнинги.
Прочти обязательно www.php-fig.org/psr про кодинг стайлы (и следуй им).
Ответ написан
@iaskivsky
Используй use для пространств имен, дабы не загромождать код, а так, если есть какие-то сомнения , то советую посмотреть видео , также посмотреть на исходный код фреймворка Codeigniter
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы