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 ?>
Author: Minu
Date: Fri, 19 Jun 2015 16:07
Date: Fri, 19 Jun 2015 16:07
42 lines
1999 bytes
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 ?>
Author: Kviat
Date: Fri, 19 Jun 2015 17:29
Date: Fri, 19 Jun 2015 17:29
58 lines
2813 bytes
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 ?>
Author: Kviat
Date: Fri, 19 Jun 2015 17:41
Date: Fri, 19 Jun 2015 17:41
32 lines
2439 bytes
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 ?>
Author: PawelS cbrbob(at)wbcd(dot)pl
Date: Fri, 19 Jun 2015 19:21
Date: Fri, 19 Jun 2015 19:21
36 lines
2600 bytes
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 ?>
Author: Kviat
Date: Fri, 19 Jun 2015 20:25
Date: Fri, 19 Jun 2015 20:25
14 lines
2021 bytes
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 ?>
Author: Minu
Date: Fri, 19 Jun 2015 22:03
Date: Fri, 19 Jun 2015 22:03
10 lines
1496 bytes
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 ?>
Author: Minu
Date: Fri, 19 Jun 2015 22:07
Date: Fri, 19 Jun 2015 22:07
16 lines
1743 bytes
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 ?>
Author: Kviat
Date: Fri, 19 Jun 2015 22:21
Date: Fri, 19 Jun 2015 22:21
18 lines
1932 bytes
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 ?>
Author: Minu
Date: Fri, 19 Jun 2015 22:29
Date: Fri, 19 Jun 2015 22:29
64 lines
3336 bytes
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 ?>
Author: Minu
Date: Fri, 19 Jun 2015 22:37
Date: Fri, 19 Jun 2015 22:37
11 lines
1395 bytes
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 ?>
Author: Kviat
Date: Fri, 19 Jun 2015 23:03
Date: Fri, 19 Jun 2015 23:03
32 lines
2323 bytes
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 ?>
Author: ww
Date: Sat, 20 Jun 2015 15:39
Date: Sat, 20 Jun 2015 15:39
24 lines
2134 bytes
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 ?>
Author: endru
Date: Mon, 22 Jun 2015 12:21
Date: Mon, 22 Jun 2015 12:21
40 lines
2101 bytes
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