🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
13 messages
13 total messages Started by Minu Fri, 19 Jun 2015 16:07
czym kierują się ludzie piszący każdą linie kodu PHP w osobnych znacznikach <?php ?>
#230990
Author: Minu
Date: Fri, 19 Jun 2015 16:07
42 lines
1999 bytes
Jaka jest idea pisania każdej linii kodu PHP w osobnym znaczniku?

Przykładowy kod

<table>
    <tr>
        <td>blank</td>
        <? foreach($mixy as $row): ?>
            <td><?= $row->Nazwa; ?></td>
        <? endforeach; ?>
    </tr>
    <? for( $i=25 ; $i<=46; $i++): ?>
        <? foreach($result as $detail): ?>
            <? if( $detail->NrTygodnia == $i ): ?>
                <tr>
                    <td><?= $detail->NrTygodnia; ?></td>
                    <td><? if($detail->Nazwa == 'WG_1') echo
$detail->st; ?></td>
                    <td><? if($detail->Nazwa == 'WG_2') echo
$detail->st; ?></td>
                    <td><? if($detail->Nazwa == 'WG_3') echo
$detail->stat; ?></td>
                </tr>
            <? endif; ?>
        <? endforeach; ?>
    <? endfor; ?>
</table>

Pomijając fakt stosowania niezalecanych skróconych znaczników <? oraz
<?= za echo, to zamiast pisać:
<? for( $i=25 ; $i<=46; $i++): ?>
    <? foreach($result as $detail): ?>
        <? if( $detail->NrTygodnia == $i ): ?>

można napisać:
<?php
for ($i = 25; $i <= 46; $i++):
    foreach ($result as $detail):
        if ($detail->NrTygodnia == $i):
?>

Wydaje się to nawet czytelniejsze.
Re: czym kierują się ludzie piszący każdą linie kodu PHP w osobnych znacznikach <?php ?>
#230991
Author: Kviat
Date: Fri, 19 Jun 2015 17:29
58 lines
2813 bytes
W dniu 2015-06-19 o 18:07, Minu pisze:
> Jaka jest idea pisania każdej linii kodu PHP w osobnym znaczniku?

Nie spotkałem się z czymś takim. Gdzie to widziałeś?

> Przykładowy kod
>
> <table>
>      <tr>
>          <td>blank</td>
>          <? foreach($mixy as $row): ?>
>              <td><?= $row->Nazwa; ?></td>
>          <? endforeach; ?>
>      </tr>
>      <? for( $i=25 ; $i<=46; $i++): ?>
>          <? foreach($result as $detail): ?>
>              <? if( $detail->NrTygodnia == $i ): ?>
>                  <tr>
>                      <td><?= $detail->NrTygodnia; ?></td>
>                      <td><? if($detail->Nazwa == 'WG_1') echo
> $detail->st; ?></td>
>                      <td><? if($detail->Nazwa == 'WG_2') echo
> $detail->st; ?></td>
>                      <td><? if($detail->Nazwa == 'WG_3') echo
> $detail->stat; ?></td>
>                  </tr>
>              <? endif; ?>
>          <? endforeach; ?>
>      <? endfor; ?>
> </table>

Ale to nie jest przykładowy kod na pisanie "każdej linii kodu PHP w 
osobnym znaczniku".
Tu jest php "wplecione" w html. A to jest "idea" zupełnie inna niż to o 
co pytasz.

> Pomijając fakt stosowania niezalecanych skróconych znaczników <? oraz
> <?= za echo, to zamiast pisać:
> <? for( $i=25 ; $i<=46; $i++): ?>
>      <? foreach($result as $detail): ?>
>          <? if( $detail->NrTygodnia == $i ): ?>
>
> można napisać:
> <?php
> for ($i = 25; $i <= 46; $i++):
>      foreach ($result as $detail):
>          if ($detail->NrTygodnia == $i):
> ?>
>
> Wydaje się to nawet czytelniejsze.

Oczywiście, że można. Ludzie różne rzeczy wymyślają, żeby sobie życie 
ułatwić.
Zobacz to:
http://phptal.org/

Pozdrawiam
Piotr
Re: czym kierują się ludzie piszący każdą linie kodu PHP w osobnych znacznikach <?php ?>
#230992
Author: Kviat
Date: Fri, 19 Jun 2015 17:41
32 lines
2439 bytes
W dniu 2015-06-19 o 19:29, Kviat pisze:
> W dniu 2015-06-19 o 18:07, Minu pisze:
>> Jaka jest idea pisania każdej linii kodu PHP w osobnym znaczniku?
(...)
>> Pomijając fakt stosowania niezalecanych skróconych znaczników <? oraz
>> <?= za echo, to zamiast pisać:
>> <? for( $i=25 ; $i<=46; $i++): ?>
>>      <? foreach($result as $detail): ?>
>>          <? if( $detail->NrTygodnia == $i ): ?>
>>
>> można napisać:
>> <?php
>> for ($i = 25; $i <= 46; $i++):
>>      foreach ($result as $detail):
>>          if ($detail->NrTygodnia == $i):
>> ?>
>>
>> Wydaje się to nawet czytelniejsze.
>
> Oczywiście, że można. Ludzie różne rzeczy wymyślają, żeby sobie życie
> ułatwić.

Może nie do końca zrozumiale się wyraziłem...
W tym przypadku, gdy php przeplata się z htmlem, taka konstrukcja 
(znaczniki dla każdej linii) zwiększa czytelność całości, a nie tylko 
tych trzech linijek.
Być może, programista (zespół?) przyjął taką konwencję również ze 
względu na łatwość modyfikacji kodu, nie trzeba szukać zamykających 
znaczników w bałaganie hatmlowo-phpowym :)

Pozdrawiam
Piotr
Re: czym kierują się ludzie piszący każdą linie kodu PHP w osobnych znacznikach <?php ?>
#230993
Author: PawelS cbrbob(at)wbcd(dot)pl
Date: Fri, 19 Jun 2015 19:21
36 lines
2600 bytes
Kviat pisze:
> W dniu 2015-06-19 o 19:29, Kviat pisze:
>> W dniu 2015-06-19 o 18:07, Minu pisze:
>>> Jaka jest idea pisania każdej linii kodu PHP w osobnym znaczniku?
> (...)
>>> Pomijając fakt stosowania niezalecanych skróconych znaczników <? oraz
>>> <?= za echo, to zamiast pisać:
>>> <? for( $i=25 ; $i<=46; $i++): ?>
>>>      <? foreach($result as $detail): ?>
>>>          <? if( $detail->NrTygodnia == $i ): ?>
>>>
>>> można napisać:
>>> <?php
>>> for ($i = 25; $i <= 46; $i++):
>>>      foreach ($result as $detail):
>>>          if ($detail->NrTygodnia == $i):
>>> ?>
>>>
>>> Wydaje się to nawet czytelniejsze.
>>
>> Oczywiście, że można. Ludzie różne rzeczy wymyślają, żeby sobie życie
>> ułatwić.
> 
> Może nie do końca zrozumiale się wyraziłem...
> W tym przypadku, gdy php przeplata się z htmlem, taka konstrukcja 
> (znaczniki dla każdej linii) zwiększa czytelność całości, a nie tylko 
> tych trzech linijek.
> Być może, programista (zespół?) przyjął taką konwencję również ze 
> względu na łatwość modyfikacji kodu, nie trzeba szukać zamykających 
> znaczników w bałaganie hatmlowo-phpowym :)
Abstrahując od short_open_tag (skrócone znaczniki)
dla pseudo szybszego lub raczej krótszej formy zapisu echo
(co nie wszędzie musi być włączone, więc lepiej tego nie używać),
to czy to powyższe nie jest przypadkiem wytworem jakiegoś TPLa ?
Np: Smarty kompilując TPLe do PHP tworzy mix PHP + HTML
wyglądający nieco podobnie do podanego przykładu.
Re: czym kierują się ludzie piszący każdą linie kodu PHP w osobnych znacznikach <?php ?>
#230994
Author: Kviat
Date: Fri, 19 Jun 2015 20:25
14 lines
2021 bytes
W dniu 2015-06-19 o 21:21, PawelS cbrbob(at)wbcd(dot)pl pisze:
>> W dniu 2015-06-19 o 19:29, Kviat pisze:
>> Być może, programista (zespół?) przyjął taką konwencję również ze
>> względu na łatwość modyfikacji kodu, nie trzeba szukać zamykających
>> znaczników w bałaganie hatmlowo-phpowym :)
> Abstrahując od short_open_tag (skrócone znaczniki)
> dla pseudo szybszego lub raczej krótszej formy zapisu echo
> (co nie wszędzie musi być włączone, więc lepiej tego nie używać),
> to czy to powyższe nie jest przypadkiem wytworem jakiegoś TPLa ?

Być może. Ale to pytanie do autora wątku. To on zapodał ten przykład.

Pozdrawiam
Piotr
Re: czym kierują się ludzie piszący każdą linie kodu PHP w osobnych znacznikach <?php ?>
#230995
Author: Minu
Date: Fri, 19 Jun 2015 22:03
10 lines
1496 bytes
W dniu 19.06.2015 o 21:21, PawelS cbrbob(at)wbcd(dot)pl pisze:
> to czy to powyższe nie jest przypadkiem wytworem jakiegoś TPLa ?
> Np: Smarty kompilując TPLe do PHP tworzy mix PHP + HTML
> wyglądający nieco podobnie do podanego przykładu.

Zawsze był to kod bezpośrednio pisany przez człowieka, nie skompilowane
szablony.

Bardzo często taki kod jest w różnych motywach do WordPressa. Przykład z
tego wątku znalazłem gdzieś w internecie, raczej nie był związany z WP.
Re: czym kierują się ludzie piszący każdą linie kodu PHP w osobnych znacznikach <?php ?>
#230996
Author: Minu
Date: Fri, 19 Jun 2015 22:07
16 lines
1743 bytes
W dniu 19.06.2015 o 19:41, Kviat pisze:
> 
> Może nie do końca zrozumiale się wyraziłem...
> W tym przypadku, gdy php przeplata się z htmlem, taka konstrukcja
> (znaczniki dla każdej linii) zwiększa czytelność całości, a nie tylko
> tych trzech linijek.
> Być może, programista (zespół?) przyjął taką konwencję również ze
> względu na łatwość modyfikacji kodu, nie trzeba szukać zamykających
> znaczników w bałaganie hatmlowo-phpowym :)

Z pewnością taka była konwencja, tylko dlaczego była stosowana?

Zawsze było to w miksie PHP i HTML. W przykładach które widziałem
wstawki kodu nigdy nie przekraczały 5 linijek w jednym miejscu. Tak więc
znalezienie znaczników zamykających nigdy nie było tam jakimkolwiek
problemem.
Re: czym kierują się ludzie piszący każdą linie kodu PHP w osobnych znacznikach <?php ?>
#230997
Author: Kviat
Date: Fri, 19 Jun 2015 22:21
18 lines
1932 bytes
W dniu 2015-06-20 o 00:07, Minu pisze:
>
> Z pewnością taka była konwencja, tylko dlaczego była stosowana?

Z wygody? Z widzimisię autora kodu?
Pytanie trochę dziwne... :)

> Zawsze było to w miksie PHP i HTML. W przykładach które widziałem
> wstawki kodu nigdy nie przekraczały 5 linijek w jednym miejscu. Tak więc
> znalezienie znaczników zamykających nigdy nie było tam jakimkolwiek
> problemem.

Może dla autora były?

Jakie pytanie, taka odpowiedź :)

Pozdrawiam
Piotr
Re: czym kierują się ludzie piszący każdą linie kodu PHP w osobnych znacznikach <?php ?>
#230999
Author: Minu
Date: Fri, 19 Jun 2015 22:29
64 lines
3336 bytes
W dniu 19.06.2015 o 19:29, Kviat pisze:
> Nie spotkałem się z czymś takim. Gdzie to widziałeś?


Przykładowo jeden z najpopularniejszych motywów do WordPressa
https://downloads.wordpress.org/theme/zerif-lite.1.8.2.1.zip

Plik zerif-lite/front-page.php:

<div class="content-left-wrap col-md-9">
    <div id="primary" class="content-area">
        <main id="main" class="site-main" role="main">
        <?php if ( have_posts() ) : ?>
            <?php /* Start the Loop */ ?>
            <?php while ( have_posts() ) : the_post(); ?>
                <?php
                    /* Include the Post-Format-specific template for the
content.
                     * If you want to override this in a child theme,
then include a file
                     * called content-___.php (where ___ is the Post
Format name) and that will be used instead.
                     */
                    get_template_part( 'content', get_post_format() );
                ?>
            <?php endwhile; ?>
            <?php zerif_paging_nav(); ?>
        <?php else : ?>
                <?php get_template_part( 'content', 'none' ); ?>
        <?php endif; ?>
        </main><!-- #main -->
    </div><!-- #primary -->
</div><!-- .content-left-wrap -->

Powyższe jest czytelniejsze niż kod poniżej?

<div class="content-left-wrap col-md-9">
    <div id="primary" class="content-area">
        <main id="main" class="site-main" role="main">
            <?php
            if (have_posts()) :
                /* Start the Loop */
                while (have_posts()) : the_post();

                    /* Include the Post-Format-specific template for the
content.
                     * If you want to override this in a child theme,
then include a file
                     * called content-___.php (where ___ is the Post
Format name) and that will be used instead.
                     */
                    get_template_part('content', get_post_format());
                endwhile;
                zerif_paging_nav();
            else :
                get_template_part('content', 'none');
            endif;
            ?>
        </main><!-- #main -->
    </div><!-- #primary -->
</div><!-- .content-left-wrap -->

Wątpię. Uważam, że jest odwrotnie. Dlatego odkąd zobaczyłem kilka
przykładów znaczników w każdej linii kodu, zastanawia mnie sens tego.
Re: czym kierują się ludzie piszący każdą linie kodu PHP w osobnych znacznikach <?php ?>
#230998
Author: Minu
Date: Fri, 19 Jun 2015 22:37
11 lines
1395 bytes
W dniu 20.06.2015 o 00:21, Kviat pisze:
> 
> Jakie pytanie, taka odpowiedź :)

Tym razem będzie lepsze ;)

Czy jest sens pisania takiego kodu? Jeśli tak, to jaki?

Jak pierwszy raz zobaczyłem coś takiego to pomyślałem, że autora po
prostu poniosło. Po kilku kolejnych przykładach u innych autorów zaczęło
mnie to zastanawiać.
Re: czym kierują się ludzie piszący każdą linie kodu PHP w osobnych znacznikach <?php ?>
#231000
Author: Kviat
Date: Fri, 19 Jun 2015 23:03
32 lines
2323 bytes
W dniu 2015-06-20 o 00:29, Minu pisze:
> W dniu 19.06.2015 o 19:29, Kviat pisze:
>> Nie spotkałem się z czymś takim. Gdzie to widziałeś?
>
>
> Przykładowo jeden z najpopularniejszych motywów do WordPressa
> https://downloads.wordpress.org/theme/zerif-lite.1.8.2.1.zip
>
> Plik zerif-lite/front-page.php:
>
> <div class="content-left-wrap col-md-9">
>      <div id="primary" class="content-area">
>          <main id="main" class="site-main" role="main">
>          <?php if ( have_posts() ) : ?>

To nadal nie jest php.
To mieszanina.

>Powyższe jest czytelniejsze niż kod poniżej?

Czytelniejsze dla kogo?

> Wątpię. Uważam, że jest odwrotnie. Dlatego odkąd zobaczyłem kilka
> przykładów znaczników w każdej linii kodu, zastanawia mnie sens tego.

Nie bardzo rozumiem. Pytasz o standardy? Czy tak "powinno się pisać kod"?

Powinno się pisać tak, aby zespół, czy ktoś inny mógł zrozumieć o co 
chodzi. Kwestia dogadania.

Pozdrawiam
Piotr
Re: czym kierują się ludzie piszący każdą linie kodu PHP w osobnych znacznikach <?php ?>
#231001
Author: ww
Date: Sat, 20 Jun 2015 15:39
24 lines
2134 bytes
On 2015-06-19 18:07, Minu wrote:
> Jaka jest idea pisania każdej linii kodu PHP w osobnym znaczniku?
>
> Pomijając fakt stosowania niezalecanych skróconych znaczników <? oraz
> <?= za echo, to zamiast pisać:
> <? for( $i=25 ; $i<=46; $i++): ?>
>      <? foreach($result as $detail): ?>
>          <? if( $detail->NrTygodnia == $i ): ?>
>
W przykładach które podałeś akurat ten sposób pisania jest dużo 
czytelniejszy. Na pewno lepsze to niż potworki typu otwarcie klamry { w 
jednym bloku <?php, potem zamykanie żeby napisać html, a potem znowu php 
i klamra zamykająca. Już nie wspominając o różnych echo "tu html";. W 
powyższym przykładzie
wprawdzie nie ma html ale po pierwsze warto trzymać się jednego sposobu 
pisania a po drugie zaraz może się okazać, że gdzieś jednak w środku 
jakiś html trzeba dopisać (np objąć coś przez tbody) i ten zapis jest 
jak znalazł. Co innego framenty typu:

<?php $a = 1; ?>
<?php $b = $a + 1; ?>
<?php $c = $b * 2; ?>

Tu już można mieć wątpliwości czy to zawsze jest czytelne.
Re: czym kierują się ludzie piszący każdą linie kodu PHP w osobnych znacznikach <?php ?>
#231002
Author: endru
Date: Mon, 22 Jun 2015 12:21
40 lines
2101 bytes
W dniu 2015-06-19 o 18:07, Minu pisze:
> Jaka jest idea pisania każdej linii kodu PHP w osobnym znaczniku?
>
> <table>
>      <tr>
>          <td>blank</td>
>          <? foreach($mixy as $row): ?>
>              <td><?= $row->Nazwa; ?></td>
>          <? endforeach; ?>
>      </tr>
> [...]

Ot najzwyklejszy template, czyli oddzielenie kodu HTML PHP.
Stosowany m.in. w Zend Framework.


>
> Pomijając fakt stosowania niezalecanych skróconych znaczników <? oraz
> <?= za echo, to zamiast pisać:
> <? for( $i=25 ; $i<=46; $i++): ?>
>      <? foreach($result as $detail): ?>
>          <? if( $detail->NrTygodnia == $i ): ?>
>
> można napisać:
> <?php
> for ($i = 25; $i <= 46; $i++):
>      foreach ($result as $detail):
>          if ($detail->NrTygodnia == $i):
> ?>
>
> Wydaje się to nawet czytelniejsze.
>

Tak ale bez dwukropków :)
Dodatkowo nie generuje pustych spacji w outpucie.
Wszystko zależy od przypadku i przeznaczenia szablonu.
Być może chodzi też o podział odpowiedzialności - frontendowiec(HTML/JS) 
/ backendowiec(PHP).
Backendowiec tak przygotowuje szablon, że frontendowiec nie nadpisuje 
niczego wewnątrz tagów <?..?>.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads