gucio1
25.04.2017, 11:51:54
Witam,
chciałbym podejść do tworzenia trzeciego mini systemu na zlecenie dla znajomych.
Stworzyłem już podobne 2 na których dużo się nauczyłem i dużo korzystałem z pomocy tego forum.
Wszystko funkcjonuje a teraz chciałbym małymi krokami zmierzać w bardziej profesjonalną stronę.
Może nie jest to ogromny krok do przodu ale też bardzo nigdzie mi się nie śpieszy, poprzednio mieszałem często php z htmlem a teraz chciałbym tego nie robić.
Moim znajomym to oczywiście nie przeszkadza ważne że użytkownicy się logują prowizje się naliczają sklepy działają itd.
I moje pytanie, jeśli nie chce mieszać phpa z htmlem rozumiem że najprościej będzie używać jakiegoś systemu szablonów.
Co polecacie na początek, może jakiś dobry sprawdzony link do dobrego tekstu albo kursu? Albo jakieś info co najpierw wygogolować co testować i czego się uczyć.
Pozdrawiam.
viking
25.04.2017, 12:00:12
Zależy od podejścia. Możesz albo od razu całe MVC wdrożyć (wiadomo, powoli na początek) albo sam system szablonów. W zależności od drogi najlepsza będzie dokumentacja.
https://twig.sensiolabs.org/http://phptal.org/
Pyton_000
25.04.2017, 12:11:35
Najprostszy i najszybszy - PHP
viking
25.04.2017, 12:15:25
Szablony są równie szybkie - pierwsze przetworzenie zajmuje dłużej. Później system pracuje na gołym PHP (skompilowany szablon). Mnie osobiście skręca jak muszę grzebać w czystym (PHP) szablonie - gigantyczne możliwości popełnienia błędu.
Ewentualnie możesz zobaczyć np Zend Expressive. Microframework który nauczyłby cię dobrych wzorców a instalator ma kilka systemów do wyboru.
Pyton_000
25.04.2017, 12:20:59
Tak, pracuje na gołym ale wywołuje pierdyliard metod

Kto co woli. Ja lubię Twig, ale i w PHP Template też dobrze się pisze
gucio1
25.04.2017, 12:23:50
Jeśli pracujesz na czystym php to jak załatwiasz sprawę nie mieszania?
Może to głupie pytanie ale dajcie mi chwile to się wdrożę w temat

Dzięki za linki viking dokumentacja na pewno się przyda na pewno zerknę ale mój angielski jest taki lekko ponad podstawę to też za dużo stamtąd nie wyciągnę.
Jeśli mielibyście jakieś linki w pl to byłbym wdzięczny.
Pyton_000
25.04.2017, 12:32:46
a czym się różni:
{foreach a in data}
{a.name}
{endofreach}
od
<? foreach($data as $a): ?>
<?= $a->name ?>
<? endforeach; ?>
Generalnie niczym.
W systemie szablonów nie chodzi o mieszanie PHP z HTML tylko o nie mieszanie Logiki z szablonem.
gucio1
25.04.2017, 12:44:52
Czyli chodzi tylko o to żeby zamiast wyświetlać coś standardowo phpem wstawiać szablon czyli np.
zamiast: <?php echo $zmienna;?>
wstawic: <?=$zmienna?>

To po co w ogóle to stosować? Jest to bardziej czytelne? Dla mnie to jeden...
viking
25.04.2017, 12:48:12
Różni się jak np czegoś nie zamkniesz w szablonie i poleci wyjątek (kontra dowolna sieczka) czy możliwość minifikacji wyjścia albo zmiany zamknięć elementów.
nospor
25.04.2017, 12:48:51
Nie. chodzi o to by oddzielic logike od wygladu.
Najpierw ma byc logika aplikacji, potem ma byc wyswietlanie aplikacji
Logika aplikacji to np. pobranie danych z bazy albo zapisanie danych do bazy, albo cala masa roznych wyliczen.
Wyswietlanie aplikacji to np. wyswietlenie pobranych wczesniej danych
No i szablony leza w innych plikach/katalogach niz skrypty odpowiedzialne za logike
Pyton_000
25.04.2017, 12:53:17
Cytat(viking @ 25.04.2017, 13:48:12 )

Różni się jak np czegoś nie zamkniesz w szablonie i poleci wyjątek (kontra dowolna sieczka) czy możliwość minifikacji wyjścia albo zmiany zamknięć elementów.
A jak w php nie domkniesz to nie poleci error? Z dupy argument...
gucio1
25.04.2017, 12:57:26
Ok, czyli np. w odrębnym pliku pobieram dane z bazy danych przeliczam je w zależności od potrzeb i powiedzmy zapisuje je w zmiennych sesyjnych. A w drugim pliku który wyświetlam użytkownikowi, wyświetlam te zmienne za pomocą szablonu?
nospor
25.04.2017, 12:59:20
A po co zapisywac do zmiennych sesyjnych? Dane z bazy masz przekazac do szablonu. Sesja tu nie potrzebna
Prosze, tu
http://nospor.pl/klasa-widoku.htmlopisalem przykladawa klase widoku/szablonu ktora korzysta z php jako szablon. Przejrzyj, moze zrozumiesz o czym mowa
gucio1
25.04.2017, 13:01:29
Właśnie szukałem odpowiedzi na pytanie jak przekazać dane do szablonu już zerkam.
viking
25.04.2017, 13:11:24
Cytat(Pyton_000 @ 25.04.2017, 13:53:17 )

A jak w php nie domkniesz to nie poleci error? Z dupy argument...
Jak nie zamkniesz tagu html...
gucio1
25.04.2017, 14:06:44
Ok, wydaje mi się że już wiem jak przekazać zmienne do szablonu. W takim razie dzięki za wskazówki będę próbował z tym walczyć

.
Pozdrawiam.
W pliku test.php mam:
<?php
$view->zmienna = 'tekst1';
?>
a w drugim test2.php
<?php
require_once('test.php');
?>
Wyświetlam tą zmienną ale co oznacza:
Warning: Creating default object from empty value in..
nospor
25.04.2017, 14:11:40
To jest caly kod jaki masz? Obiekt $view gdzies tworzysz w ogole?
viking
25.04.2017, 14:13:28
$view ma być instancją jakiegoś obiektu. Zobacz sobie np klasę
https://github.com/zendframework/zend-view/...l/ViewModel.php
gucio1
25.04.2017, 15:21:25
Aa czaje dobra, czyli po prostu obliczenia itp wykonuje w odrębnych plikach i ładuję plik z klasą potem w widoku odwołuję się do obiektów które wyświetlam przez $this->?
Czyli to wystarczy żeby nikt nie zarzucił mi mieszania logiki z wyglądem?
viking
25.04.2017, 15:57:13
Spróbuj skorzystać z gotowego frameworka lub microframworka. Zobaczysz jak się powinno pisać i w jaki sposób tworzy się takie rzeczy. Przykładowe aplikacje:
https://github.com/zf3buch/zendframework-ce...e/chapter_18_01https://github.com/RalfEggert/zend-expressi...rial/tree/part6
gucio1
25.04.2017, 17:04:08
Mógłby ktoś zerknąć czy ten tutorial jest aktualny?
Tu są chyba wystarczające podstawy żeby zapoznać się z MVC.
http://wortal.php.pl/Wortal/Artykuly/Frame...-Zend-Framework
kayman
25.04.2017, 18:02:11
na moje Twig załatwia sprawę szablonów, frameworki go "lubią" a i własna implementacja w/g własnego widzimisię nie jest trudna bo sprowadza się tak naprawdę do stworzenia tablicy z danymi do wyświetlenia i wskazania pliku w którym mają one być umieszczone
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.