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

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

Доброго времени суток, практикую написание скриптов на ООП и с использованием паттенра MVC. Скрипт можно посмотреть тут https://github.com/Sanek-OS9/My-project рабочий сайт тут gamer-play.ru
Однозначного ответа верно или не верно дать нельзя, но оценку поставить можно на ваше усмотрение. Хочу услышать мнение о структуре самого скрипта, как я распихал контроллеры, методы, шаблон и прочее, как организовал сам шаблон, как пишу контроллеры, методы, как написал роутер, понятно ли пишу код.
  • Вопрос задан
  • 460 просмотров
Решения вопроса 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект