После прочтения этой статьи ваш PHP-код станет элегантным.

PHP

введение

Сегодня г-н Ван сказал мне, что его код настолько плох, что выглядит как беспорядок. спроси меня как

Улучшите качество своего кода, сделайте его более приятным для глаз и более удобным, например

У длинноногого ММ так и блестят глаза.

Итак, я: Ты сначала делаешь это, потом это, потом это. . . . . .

Одноклассник Лао Ван: Не устраивай хлопот, что это?

Хорошо, я начну загружать 13. . .

Основные характеристики

Давайте сначала поговорим о самых основных вещах:

  • Имена переменных пишутся в верблюжьем регистре. Не используйте пиньинь для слов, которые вы не понимаете, а загляните в словарь, чтобы найти соответствующие слова.

  • Константы именуются с использованием прописных букв и символов подчеркивания. Такие как:SYSTEM_EROOR = 50000.

  • Используйте клавишу Tab для отступа, не вводите кучу пробелов для отступа.

  • Первая буква имени класса пишется с заглавной буквы в верблюжьем регистре, вам нужно знать значение имени, а аннотации описывают функцию этого класса. Например:

  • Имя метода названо верблюжьим регистром, а количество строк метода ограничено примерно 80 строками, насколько это возможно, а комментарии объясняют, для чего используется функция.

  • Фигурные скобки находятся на отдельной строке, например:

  • Foreach используйте ссылки с осторожностью, например, в следующем коде будут проблемы:

Ожидаемый результат - это вывод:2 4 6, фактический результат2 4 4, почему Чтобы увидеть мою предыдущую статью:PHP中Вы действительно понимаете символ &?。 可以使用Метод array_walk` позволяет избежать этой проблемы, например:

  • избегатьif, eleseВложенность слишком глубокая, и многие вложения можно устранить досрочным завершением, для простого примера:

Рекомендуется использовать второй способ, если условия не выполняются, возвращайтесь напрямую, а остальные являются символьными условиями, так вы избежите написания большого количества кода в if.

  • несколькоif/elseВместо этого используйте переключатель, версия PHP8.0 может использоватьmatchБолее лаконично.

  • phpstormустановкаSonarLintплагин. Если в написанном вами коде пунктирная линия, значит, он не идеален, то его можно модифицировать согласно подсказкам. Я верю, что студенты с обсессивно-компульсивным расстройством обязательно изменят его. Со временем код будет быть очень стандартизированным. Например:

Метод не используется, и название метода не стандартизировано Вам было сказано, что вы можете его быстро изменить, или вы можете изменить его самостоятельно.

Спецификация платформы

  • Вышеперечисленное — это основные вещи, а следующее — основное содержание.

  • Я полагаю, что многие студенты использовали общеупотребительныеthinkphp,laravel,yiiОдин из других популярных фреймворков.

  • Все эти фреймворки основаны на архитектуре MVC. Я видел код многих людей. Либо пишите бизнес-логику в контроллере, либо в модели. Писать в модели относительно лучше, чем писать в контроллере. На самом деле, он не очень дружелюбен к крупным проектам.

  • Ниже в качестве примера используется фреймворк Laravel.

проверка параметров

  • API требует проверки параметров, но где проверка параметров более элегантна? Многие люди могут определить правила в контроллере, а затем вызвать метод проверки, тогда код проверки появится в каждом API, например, написанном моим коллегой.

    Этот код будет появляться один раз в каждом API, не слишком ли он многословен, так как же его решить?

  • Создайте его в http-каталоге Laravel.RequstsКаталог, используемый для хранения класса проверки параметров запроса. СоздатьBaseRequestДобрый:

Например, для входа требуется проверка параметров, а затем создание нового.LoginRequestкласс наследует этоBaseRequest.

  • При его использовании вам нужно только внедрить этот класс запроса в метод контроллера.

Когда здесь будут получены параметры запроса, форма будет проверена, в противном случае, если проверка параметров завершится неудачей, будет вызван метод, определенный накоплением запроса, чтобы создать исключение Json и вернуть информацию клиенту.

контроллер

Основная рабочая нагрузка контроллера получает данные запроса и возвращает контент, и не должна делать больше, тогда вы можете определить уровень службы для обработки бизнес-логики. Так что код моего контроллера состоит только из одной строки.

  • Создайте папку Services в каталоге приложений Laravel для хранения классов Service и создайте класс BaseService:

Затем создайте UserService для обработки бизнес-логики, связанной с пользователем.

Внедрите этот UserService в UserController, используя:

Model

Модель не рекомендует писать бизнес-логику. Модель в основном используется для определения некоторого контента и не должна манипулировать данными.

Обработка данных модели должна быть помещена в репозиторий, а папка должна быть создана в каталоге приложения Laravel.Repositories.

Определить базовый репозиторий:

Определите UserRepository для операций, связанных с пользовательскими данными, внедрите UserModel в конструктор:

постоянный

Как определить много констант в проекте?

Создайте каталог Constant в каталоге приложения, а затем создайте класс Constant для хранения этих пользовательских констант.

Преимущества этого:

  • Пользовательскими константами можно управлять централизованно.
  • При изменении постоянного значения вам нужно найти и изменить его только один раз в этом классе, а обновление кода и ремонтопригодность хороши.

приложение