Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2023, 11:50   #1
Deenwar
 
Аватар для Deenwar
 
Регистрация: 31.10.2023
Сообщений: 8
По умолчанию PSR стандарты при изучении PHP

Всем привет. Начал изучать PHP и довольно быстро понял, что нужно изначально приучать себя следовать общепринятым стандартам. Таковыми в PHP являются PSR-0 - 12.

Прошел уже базовый синтаксис на code-basics по рекомендации с этого форума, все понял, со всем справился но даже сейчас практически ничего непонятно когда пытаюсь вникнуть в стандарты PSR

Собственно вопрос: PSR - это основа основ и оно должно быть понятно изначально или должен быть уже не малый багаж знаний для его понимания?
Deenwar вне форума Ответить с цитированием
Старый 31.10.2023, 12:10   #2
Valick
Форумчанин
 
Регистрация: 27.04.2022
Сообщений: 486
По умолчанию

А что конкретно непонятно?
PSR - это рекомендации, не обязательно использовать их все.
Сейчас например рекомендованный стандарт для автозагрузки классов PSR-4 почему это отдельный psr а не изменённый PSR-0 я хз.
Я бы рекомендовал для начала к применению стили кодирования PSR-1 и PSR-12 и автозагрузку PSR-4.
Необходимость в стандартизации интерфейсов прийдёт с опытом.
И опять же не понятно вы начали изучать именно РНР или программирование в целом?
Valick вне форума Ответить с цитированием
Старый 31.10.2023, 12:44   #3
Deenwar
 
Аватар для Deenwar
 
Регистрация: 31.10.2023
Сообщений: 8
По умолчанию

Я уже довольно неплохо знаю CSS и HTML но как известно, это не языки программирования Так что да, начал изучать программирование в целом.

Из непонятного, например в PSR-1. Синтаксис объявления функции в примерах как НЕНАДО и НАДО делать одинаковый Или там идет речь об общей последовательности действий?

Код:
The following is an example of a file with both declarations and side effects; i.e, an example of what to avoid:

<?php
// side effect: change ini settings
ini_set('error_reporting', E_ALL);

// side effect: loads a file
include "file.php";

// side effect: generates output
echo "<html>\n";

// declaration
function foo()
{
    // function body
}

The following example is of a file that contains declarations without side effects; i.e., an example of what to emulate:

<?php
// declaration
function foo()
{
    // function body
}

// conditional declaration is *not* a side effect
if (! function_exists('bar')) {
    function bar()
    {
        // function body
    }
}
Deenwar вне форума Ответить с цитированием
Старый 31.10.2023, 13:42   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,539
По умолчанию

Цитата:
Сообщение от Deenwar Посмотреть сообщение
Синтаксис объявления функции в примерах как НЕНАДО и НАДО делать одинаковый
Ну значит вы не до конца поняли суть написанного. Речь идет о том, что нельзя смешивать объявления и выполнение каких-либо действий непосредственно (вне функций и т.п.). Во втором примере (правильном) таких действий нет, так как есть лишь объявления функций. В первом же примере (неправильном) есть как объявление функции, так и, например, вывод с помощью echo.
Arigato вне форума Ответить с цитированием
Старый 31.10.2023, 13:55   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

Там больше речь о сайд эффектах. Вы хотите функцию, а получаете измененение настроек, вывод, поджарку кофе и кучу на ковре.
p51x вне форума Ответить с цитированием
Старый 31.10.2023, 17:27   #6
Deenwar
 
Аватар для Deenwar
 
Регистрация: 31.10.2023
Сообщений: 8
По умолчанию

Теперь стало понятнее, спасибо. Да, было ошибкой пытаться понять это сразу на английском. Не понял, что речь идет о сайд эффектах и объявлении функций в одном файле. Думал там про синтаксис. Окончательно врублюсь скорее всего только когда начну уже создавать все эти файлы о которых идет речь

Если у кого так же появятся проблемы с пониманием PSR-1, то нашел видео где объясняется на "понятном". Перед созданием темы искал PSR-1 на форуме и ни чего не нашел. Так что не бесполезная тема вроде.

видео
Deenwar вне форума Ответить с цитированием
Старый 31.10.2023, 19:02   #7
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,539
По умолчанию

Цитата:
Сообщение от Deenwar Посмотреть сообщение
PSR - это основа основ и оно должно быть понятно изначально или должен быть уже не малый багаж знаний для его понимания?
Синтаксис языка изучите вначале, а остальное потом уже.
Arigato вне форума Ответить с цитированием
Старый 01.11.2023, 07:34   #8
Liris
Пользователь
 
Регистрация: 09.05.2012
Сообщений: 19
По умолчанию

Цитата:
Сообщение от Deenwar Посмотреть сообщение
Окончательно врублюсь скорее всего только когда начну уже создавать все эти файлы о которых идет речь
Я бы впринципе не трогал PSR, пока вы не начнете создавать проекты, где оно хоть как-то уместно.
Нормальный путь развития в PHP:
1) сначала пишем трудночитаемые скрипты, которые последовательно делают то, что нужно
2) осознаем быстрорастущую сложность и тонны повторяющегося кода - выносим повторяющийся код в функции, приходим к идее переиспользования функций в разных проектах
3) осваиваем ООП, разносим функции по классам (превращая в методы), потихоньку осваиваясь с абстракциями, учимся делать классы (модули, пакеты, бандлы) универсальными.
Здесь можно почитать PSR про стандарты кодирования (учимся форматировать код правильно) и автозагрузку (делаем модули универсальнее).
4) приходит понимание, что в мире уже полно хороших решений, а мы все это время изобретали велосипед - читаем про паттерны, стандарты кодирования, автоматическое тестирование, архитектуру и вот это вот всё. Тут можно и остальные PSR почитать.
Liris вне форума Ответить с цитированием
Старый 01.11.2023, 11:44   #9
Deenwar
 
Аватар для Deenwar
 
Регистрация: 31.10.2023
Сообщений: 8
По умолчанию

Arigato, "
Цитата:
Сообщение от Arigato Посмотреть сообщение
Синтаксис языка изучите вначале, а остальное потом уже.
Согласен. Синтаксис - основа основ. Так и планирую своё обучение. Сперва синтаксис заложить в основу, а потом нагружать его зданием из встроенных PHP функций, взаимодействием с базами данных и всевозможными окружениями типо Lavarel.

Последний раз редактировалось Deenwar; 01.11.2023 в 11:54.
Deenwar вне форума Ответить с цитированием
Старый 01.11.2023, 11:53   #10
Deenwar
 
Аватар для Deenwar
 
Регистрация: 31.10.2023
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Liris Посмотреть сообщение
Я бы впринципе не трогал PSR, пока вы не начнете создавать проекты, где оно хоть как-то уместно.
Нормальный путь развития в PHP:
1) сначала пишем трудночитаемые скрипты, которые последовательно делают то, что нужно
2) осознаем быстрорастущую сложность и тонны повторяющегося кода - выносим повторяющийся код в функции, приходим к идее переиспользования функций в разных проектах
3) осваиваем ООП, разносим функции по классам (превращая в методы), потихоньку осваиваясь с абстракциями, учимся делать классы (модули, пакеты, бандлы) универсальными.
Здесь можно почитать PSR про стандарты кодирования (учимся форматировать код правильно) и автозагрузку (делаем модули универсальнее).
4) приходит понимание, что в мире уже полно хороших решений, а мы все это время изобретали велосипед - читаем про паттерны, стандарты кодирования, автоматическое тестирование, архитектуру и вот это вот всё. Тут можно и остальные PSR почитать.
А вот тут немного не согласен, уж простите

1) Даже в начале пути можно уже понять, что код - это общее дело. И писать его надо так, что бы и сам понял потом, и люди с которыми работаешь. Даже в ущерб производительности.

2) Даже сейчас, в самом начале пути уже понятно, что функции для этого и нужны. Для унификации кода. Чтобы не писать одно и тоже по сотне раз.

3) С принципами ООП ознакомился и понял, что это реально лучше отложить на потом пока что

4) Понимание того что все велосипеды уже изобретены присутствует с самого начала. Но! Просто обязательно нужно пару из них создать самому что бы въехать. И вместо strpos() создать свою функцию, которая будет искать нужное в строке, например.

Однако, однозначно спасибо за помощь. Я реально удивлен атмосфере на этом форуме. Впервые не вижу желчи к новичкам в ru сигменте.

P.S. Если с высоты опыта некоторые из моих утверждений являются нелепыми, то очень буду рад критике, которая поможет максимально эффективному обучению.

Последний раз редактировалось Deenwar; 01.11.2023 в 12:50.
Deenwar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Fortran стандарты Freemandes Помощь студентам 0 11.05.2014 13:47
Стандарты IEEE Sam Gold Обсуждение статей 2 10.03.2011 14:16
где искать стандарты? Пепел Феникса Общие вопросы по программированию, компьютерный форум 4 14.05.2010 21:43
Языковые стандарты _SERGEYX_ Общие вопросы Delphi 5 27.02.2009 09:53
Язык и региональные стандарты All517 Общие вопросы Delphi 4 13.08.2008 07:06