Cześć. Od około 2006 r. bawię się PHP amatorsko, nieobiektowo. Robiłem proste strony dla siebie czy znajomych, realizujące różne, czasem absurdalne zadania. Mniej lub bardziej przejmowałem się dobrymi praktykami a swoją wiedzę jak powinno się tworzyć stronę bazowałem na jednej właściwie książce z której w 2006 roku nauczyłem się programować w php. Nigdy nie programowałem profesjonalnie, ale teraz chcę to zmienić i szykuje się do rozmowy kwalifikacyjnej na juniora. Dostałem zadanie do zrobienia.
I teraz moje pytania do Was to właściwie jakie sa trendy, dobre praktyki w tworzeniu prostej stronki (mały sklep internetowy)? Cała logika strony ma być obiektowa.
1. Czy każda klasa powinna być w oddzielnym pliku? Gdzieś wyczytałem, że tak się robi - plik nazywa się tak jak klasę, pamiętając o wielkiej literze.
2. Jaką strukturę powinien mieć index.php i co w sobie zawierać?
a) Czy w index.php mają być jedynie odpalane jedna po drugiej metody zdefiniowane wcześniej w klasach w oddzielnych plikach?
Czy w index.php wolno w ogóle umieszczać kod html?
3. Jak obsługuje się obecnie linki z main menu i wyświetla zawartość strony zależnie od wybranej podstrony? Dawniej zrobiłbym coś na zasadzie:
switch($_GET['page']){ case 'main-page': http://www.php.net/echo 'cała zawartość strony głównej'; break; case 'gallery': http://www.php.net/echo 'wyświetlam galerię'; break; default: http://www.php.net/echo 'landing page'; }
ad1) tak. Przeczytaj generalnie PSR jesli naprawde chcesz na powaznie sie za to brac
Reszta:
Poczytaj o MVC, routerach, popatrz jak to robia np. Symfony.
INdex w projekcie Symfony wyglada tak:
use App\Kernel; require_once http://www.php.net/dirname(__DIR__).'/vendor/autoload_runtime.php'; return function (http://www.php.net/array $context) { return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']); };
Ok, czytam PSR.
Już w PSR-1 mam pierwsze niejasności.
Co oznacza ten zapis (linijka 2)?
<?php namespace Vendor\Model; //co to robi? class Foo { }
No to jeszcze musisz poczytac o NAMESPACE Masz duze zaleglosci
Moze ten artykul
https://blog.wyremski.pl/przestrzenie-nazw-w-php-namespaces/
?
No i jeszcze AUTOLOAD, bo ta systematyka bardzo ulatwia wlasnie AUTOLOAD
A ja dodam , bo jak piszesz
Sądzicie, że czytać po kolei NAMESPACE, AUTOLOADER i PSR czy lepiej kupić jakąś książkę uczącą php obiektowo od podstaw, pominąć to co już wiem i lecieć rozdziały o OOP a potem tworzenie strony w praktyce?
Ja ze swojej strony, stwierdzę że warto kupić sobie aktualną książkę do PHP i przeanalizować ją, bo doświadczonym programistą PHP nic nie powie bo wiedzą co trzeba, ale dla hobbystów i uczących się powiedzą sporo jak dobrze korzystać z PHP. Szczególnie że mamy teraz PHP 8.2 które niesie wiele zmian.
Książki niestety już (albo chwilowo) nie ma w sprzedaży, ale jest e-book. Może przypadnie ci do gustu: https://helion.pl/ksiazki/php-obiekty-wzorce-narzedzia-wydanie-v-matt-zandstra,phpob5.htm#format/e
Ja ze swojej strony - polecam bardzo.
Jak już przeczytasz powyższą, to następna jest taka: https://helion.pl/ksiazki/czysty-kod-podrecznik-dobrego-programisty-robert-c-martin,czykov.htm#format/e
Możesz też dorzucić sobie tą: https://helion.pl/ksiazki/kierunek-jakosc-jak-unikac-bledow-w-projekcie-aleksandra-kunysz,jaktob.htm#format/e
A później: https://helion.pl/ksiazki/mistrz-czystego-kodu-kodeks-postepowania-profesjonalnych-programistow-robert-c-martin,mckkvv.htm#format/e
@Salvation
Ale obecnie z to nie tą książkę, tylko wersję z 8ką powinien okiełznać: https://helion.pl/ksiazki/php-8-i-sql-programowanie-dla-poczatkujacych-w-43-lekcjach-mariusz-duka,ph8sql.htm#format/d
Acz posiadam papierową ów wersję, polecam.
Polecam i potwierdzam istotność przeczytania kolejnych podanych pozycji, nawet jeżeli przykłady operowane są nie na PHP a na innych językach tj. C++ czy Java.
Różnice między 7 a 8, nie są aż takie duże, moim zdaniem. To jest do wyuczenia na projecie (nawet takim do szuflady) w miesiąc. A książka nr 1 co podlinkowałem badzo dobrze uświadamia pewne rzeczy.
A poza tym, to nigdy nie będzie aktualnej książki w temacie języka. Zawsze będzie przestarzała.
No, co innego właśnie takie (kultowe) pozycje jak Czysty Kod Martina, DDD Evansa czy Developer Hegemeny Dietricha.
Zgadzam się, takie książki mogą się starzeń szybko, ale już lepiej mieć najnowsze wydanie niż starsze, szczególnie jeżeli dotyczy języka o konkretnych wersjach, bo niosą także przesłania i metody z książek innych autorów.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)