1 Востаннє редагувалося alex6 (15.05.2012 05:55:54)

Тема: Стиль та оформлення коду в PHP

Останнім часом почав часто задумуватись над оформлення свого коду. Як краще називати змінні та функції, де ставити дужки і т.п. Чи є щось для php, як в Java (Code Conventions for the Java Programming Language). Бажано якісь більш сучасні рекомендації.

2

Re: Стиль та оформлення коду в PHP

Хороше оформлення коду в майбутньому зберігає і  час і нерви, ну як я знаю є 2 типи основних в плані наз це

myVar
my_var

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

Хороший варіант оформлення можна подивитися http://framework.zend.com/wiki/display/ … rd+(draft)

3

Re: Стиль та оформлення коду в PHP

Чисто для php таких стандартів немає. Все  залежить від того в якій компанії ви працюєте або який фреймворк використовуєте. Мені, наприклад, довподоби стиль codeIgniter. Його описання можна знайти в документації.

4

Re: Стиль та оформлення коду в PHP

Дякую. Буду використивувати стиль Zend Framework.

5

Re: Стиль та оформлення коду в PHP

стараюся писати розбірливо, проте не часто це виходить і іноді плутаєшся в своєму ж коді)
зрештою, пишу для себе, тому це не так і важливо.

6

Re: Стиль та оформлення коду в PHP

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

7 Востаннє редагувалося miroslav.chandler (17.08.2012 00:56:40)

Re: Стиль та оформлення коду в PHP

хочу трохи сказати про відображення(mvc)
деколи, коли дивившся в вю файли, плакати хочеться.
приклад з проекту, який попався мені.

        <div><?=$doc['text5']?></div><br>
        if(is_array($files)){
            ?><b>Прикреплённые файлы:</b><br>
            <table width="100%"><?
            foreach($files as $k => $file){
                ?><tr>
                        <td valign="top" width="31">
                            <img src="images/icon-pdf.png">
                        </td>
                        <td valign="top">
                            <i><a href="<?=ADMIN_URL.$file['path']?>" target="_blank"><? if(!empty($file['description'])){echo $file['description'];}else{echo $file['name'];}?></a></i>
                        </td>
                </tr><?
            }
            ?></table><?
        }
    ?>

Використавши альтернативний синтаксис PHP, виглядає більш понятніше :)

        <div>
            <?=$doc['text5']?>
        </div>
        <br>
        <?if(is_array($files)):?>
            <b>Прикреплённые файлы:</b><br>
            <table width="100%">
                <?foreach($files as $k => $file):?>
                <tr>
                    <td valign="top" width="31">
                        <img src="images/icon-pdf.png">
                    </td>
                    <td valign="top">
                        <i>
                            <a href="<?=ADMIN_URL.$file['path']?>" target="_blank">
                                <? if(!empty($file['description'])):?>
                                    <?=$file['description']?>
                                <?else:?>
                                    <?=$file['name']?>
                                <?endif;?>
                            </a>
                        </i>
                    </td>
                </tr>
            <?endforeach;?>
            </table>
        <?endif;?>

Тому будьте мужиками, юзайте альтернативний синтаксис, бле*ть!

8

Re: Стиль та оформлення коду в PHP

miroslav.chandler написав:

хочу трохи сказати про відображення(mvc)
деколи, коли дивившся в вю файли, плакати хочеться.
приклад з проекту, який попався мені.

        <div><?=$doc['text5']?></div><br>
        if(is_array($files)){
            ?><b>Прикреплённые файлы:</b><br>
            <table width="100%"><?
            foreach($files as $k => $file){
                ?><tr>
                        <td valign="top" width="31">
                            <img src="images/icon-pdf.png">
                        </td>
                        <td valign="top">
                            <i><a href="<?=ADMIN_URL.$file['path']?>" target="_blank"><? if(!empty($file['description'])){echo $file['description'];}else{echo $file['name'];}?></a></i>
                        </td>
                </tr><?
            }
            ?></table><?
        }
    ?>

Використавши альтернативний синтаксис PHP, виглядає більш понятніше :)

        <div>
            <?=$doc['text5']?>
        </div>
        <br>
        <?if(is_array($files)):?>
            <b>Прикреплённые файлы:</b><br>
            <table width="100%">
                <?foreach($files as $k => $file):?>
                <tr>
                    <td valign="top" width="31">
                        <img src="images/icon-pdf.png">
                    </td>
                    <td valign="top">
                        <i>
                            <a href="<?=ADMIN_URL.$file['path']?>" target="_blank">
                                <? if(!empty($file['description'])):?>
                                    <?=$file['description']?>
                                <?else:?>
                                    <?=$file['name']?>
                                <?endif;?>
                            </a>
                        </i>
                    </td>
                </tr>
            <?endforeach;?>
            </table>
        <?endif;?>

Тому будьте мужиками, юзайте альтернативний синтаксис, бле*ть!

Але ти все одно недосконало порівняв код, подивися на якому рівні в тебе foreach та endforeach))) Будь мужиком, рівняй код ідеально!!!)

9

Re: Стиль та оформлення коду в PHP

Patron написав:
miroslav.chandler написав:

хочу трохи сказати про відображення(mvc)
деколи, коли дивившся в вю файли, плакати хочеться.
приклад з проекту, який попався мені.

        <div><?=$doc['text5']?></div><br>
        if(is_array($files)){
            ?><b>Прикреплённые файлы:</b><br>
            <table width="100%"><?
            foreach($files as $k => $file){
                ?><tr>
                        <td valign="top" width="31">
                            <img src="images/icon-pdf.png">
                        </td>
                        <td valign="top">
                            <i><a href="<?=ADMIN_URL.$file['path']?>" target="_blank"><? if(!empty($file['description'])){echo $file['description'];}else{echo $file['name'];}?></a></i>
                        </td>
                </tr><?
            }
            ?></table><?
        }
    ?>

Використавши альтернативний синтаксис PHP, виглядає більш понятніше :)

        <div>
            <?=$doc['text5']?>
        </div>
        <br>
        <?if(is_array($files)):?>
            <b>Прикреплённые файлы:</b><br>
            <table width="100%">
                <?foreach($files as $k => $file):?>
                <tr>
                    <td valign="top" width="31">
                        <img src="images/icon-pdf.png">
                    </td>
                    <td valign="top">
                        <i>
                            <a href="<?=ADMIN_URL.$file['path']?>" target="_blank">
                                <? if(!empty($file['description'])):?>
                                    <?=$file['description']?>
                                <?else:?>
                                    <?=$file['name']?>
                                <?endif;?>
                            </a>
                        </i>
                    </td>
                </tr>
            <?endforeach;?>
            </table>
        <?endif;?>

Тому будьте мужиками, юзайте альтернативний синтаксис, бле*ть!

Але ти все одно недосконало порівняв код, подивися на якому рівні в тебе foreach та endforeach))) Будь мужиком, рівняй код ідеально!!!)


Це я бистренько редагував для прикладу, бо того участку коду, вже не було)

10

Re: Стиль та оформлення коду в PHP

Мені подобається стиль кодування, який запропонували розробники Kohana - http://kohanaframework.org/3.0/guide/kohana/conventions

Хоча програмуючи щось на фреймворку Zend, я слідую його "неформальним правилам".

11

Re: Стиль та оформлення коду в PHP

я також більше люблю зенд стиль)

12

Re: Стиль та оформлення коду в PHP

Мені колись на роботі казали: "Петя, ти пішеш некрасівий код, ровняй код Петя!". Але я все одно фігачив по своєму і не зважав на поради. А потім якось самому захотілося форматувати код, навіть незнаю чому.)

Подякували: miroslav.chandler1

13

Re: Стиль та оформлення коду в PHP

Patron написав:

Мені колись на роботі казали: "Петя, ти пішеш некрасівий код, ровняй код Петя!". Але я все одно фігачив по своєму і не зважав на поради. А потім якось самому захотілося форматувати код, навіть незнаю чому.)


Пацталом :D

14

Re: Стиль та оформлення коду в PHP

все приходить з часом. Мене так навчили, що потрібно рівняти :)

15

Re: Стиль та оформлення коду в PHP

та стараюся форматувати код табами, а то без форматування деколи і сам в цьому "творінні" не розберешся :D

16 Востаннє редагувалося funivan (08.11.2012 22:22:05)

Re: Стиль та оформлення коду в PHP

в сучасних іде дуже кльове форматування коду)
У нас один проегр рівняє все руками, пробіли проставляє і тд)
А я просто Ctrl+Alt+F і вуаля)

Якісна структура коду, багато говорить про програміста

До речі поглянув на принципи кохани мені особисто дуже не подобаються)))

17

Re: Стиль та оформлення коду в PHP

Ой люди, ви вигадуєте велосипед, таке враження, що жоден з вас не працював в(з) нормальній(-ою) компанії(-єю), яка використовує один прийнятих стандартів у світі. Тож краще повчіться за стандартами, що створили до вас, а не мусолите бозна скільки часу те, що повинно було завершитися в першому ще пості. Ось деякі визнанні стандарти, які найчастіше вимагають нормальні компанії (не лише компанії-розробники цих стандартів, але інші які до них не мають стосунку):
Qt Coding Style

18

Re: Стиль та оформлення коду в PHP

HetmanNet написав:

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

Форум для того що б ділитись в першу чергу своїм баченням. І перейняти хороші штуки в інших осіб.
В цій гілці ніхто велисопедів не придумує. Можливо ми не працювали в нормальних кампашках а ви працювали, але все ж таки у кожного своя думка.

Скажіть будь ласка Ви працюєте в компанії яка має 1н стандарт і ви його дотримуєтесь?

HetmanNet написав:

Тож краще повчіться за стандартами, що створили до вас, а не мусолите бозна скільки часу те, що повинно було завершитися в першому ще пості

Ми вчимось і читаємо інші стандарти, деякі більше подобаються деякі менше.

HetmanNet написав:

Ось деякі визнанні стандарти, які найчастіше вимагають нормальні компанії

Назвіть будь ласка яка з компаній вимагає стандарт "Google HTML/CSS Style Guide", дайте будь ласка її контакти якщо можна.

Тепер розглянемо ситуацію:  які найчастіше вимагають нормальні компанії
Давайте порівняємо дві компанії гугл і гітхаб.
Якщо вони використовують різні стандарти значить одна з них нормальна інша з них не нормальна??

1. https://github.com/styleguide/css
2. http://google-styleguide.googlecode.com … sguide.xml

Скажіть хто нормальний а хто не нормальний.
Ви не задумувались над тим чому вони обрали різні стандарти?

І останнє. Завжди буде холівар на цю тему, або скажемо так обговорення. Скільки програмістів стільки і думок. Комусь одне подобається комусь інше, саме тому в компаніях стараються знайти середину а не сказати кодьте ось так і все а ні значить звільнемо. Завжди іде обговорення. І тому в багатьох компаніях навіть супер відомих різні стилі кодування. До речі замітьте що у ваших ссилках вказано Guide це означає гід а не стандарт.

Якого стилю форматування (css, js, php) дотримуєтесь ви? Дякую

Подякували: miroslav.chandler1

19

Re: Стиль та оформлення коду в PHP

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

function filterByName()
var userAddress;


намагаюся називати змінні осмислено;

$postalCode = "10091";
$totalPrice   += (double) $orderItem["price"];


виділяю табуляцією кожен дочірній блок коду зберігаючи ієрархію;

function filterByName($a, $b){
    for($i = 0; $i < 100; $i++){
        if($a != $b) {
            $a = $b;
        }
    }
    $a /= 2;
    for($i = 0; $i < 100; $i++){
        $a *= $b;
    }
}

намагаюся при можливості використовувати скорочений синтаксис умовного оператора;

$c = ($a == $b) ? $b : $a;

в шаблонах намагаюся використовувати скорочений синтаксис оператора echo;

<a href="http://google.com.ua"><?=$ancor?></a>

намагаюся не виводити великі шматки html через оператор echo;

<?php if($good) {?>
<a href="http://google.com.ua"><?=$ancor?></a>
<?php } ?>

Існує ще достатньо багато нюансів яких я дотримуюся але на разі їх не пригадаю. Для ООП свої стандарти, для SQL свої, для javaScript можуть бути свої відмінності у порівнянні із php і т.д.
п.с. я б радив початківцям незнайомим із жодними стандартами почати із стандартів мови Java (Code Conventions for the Java Programming Language).

Подякували: funivan1

20 Востаннє редагувалося funivan (09.11.2012 10:49:03)

Re: Стиль та оформлення коду в PHP

Все підтримують тілкьи чуток стиль інший.
Отут пробіли додаю?

<a href="http://google.com.ua"><?= $ancor ?></a>

В шаблоних теж коли іф додаю всередині відступ. Для того що б краще читати) + включені шорттеги досить зручно ;)

<? if($good) {?>
  <a href="http://google.com.ua"><?= $ancor ?></a>
<? } ?>

Класи описую так:

Теж кемелКейс юза)  тілкьи в назвах класів ще можна використовувати нижню риску

 class Fiv_Html {
 
 }


Константи  (великі букви)

const STATUS_DRAFT = 0;

public властивості

public $text = '';

протектед властивості

protected $spacesNum = 0;

приватні властивості

private $cache = null;

магічні методи

public function __get($name){
}

додаткові гетери сетери

public function setText($text){
  $this->text = $text;
}

методи з більшим пріорітетом (основні )

public function generateText(){
  $text = $this->getText();
  $text = $this->removeSpaces($text);
  return $text;
}

методи з меншим пріорітетом (хелпери всякі як для прикладу)

public function removeSpaces($text){
  $text = preg_replace('!\s{2, }!Uu', ' ', $text);
  return $text;
}

Стараюсь уникати багатьох вкладеностей іфів форічів і тд) мауксимум 3 переважно)
Назви змінних і взагалі будь чого осмислені робити, тільки $i, $key допускається в деяких випадках коли цикли є і то стараюсь по мінімуму використовувати. Постараюсь якось скласти свої правила у зручному форматі покажу))