Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Budowa index.php profesjonalnie
Forum PHP.pl > Forum > PHP > Object-oriented programming
sadistic_son
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?
cool.gif 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:
  1. switch($_GET['page']){
  2. case 'main-page':
  3. echo 'cała zawartość strony głównej';
  4. break;
  5. case 'gallery':
  6. echo 'wyświetlam galerię';
  7. break;
  8. default:
  9. echo 'landing page';
  10. }

Czy tak się robi? Zakładam, że już nie (a może nigdy tak się nie robiło, a ja robiłem to zawsze źle).


Pomóżcie - jak to powinno profesjonalnie wyglądać.
Dzięki.
nospor
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:

  1.  
  2. use App\Kernel;
  3.  
  4. require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
  5.  
  6. return function (array $context) {
  7. return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
  8. };
  9.  


I nie, index nie powinien miec kodu HTML wink.gif
sadistic_son
Ok, czytam PSR.

Już w PSR-1 mam pierwsze niejasności.

Co oznacza ten zapis (linijka 2)?

  1. <?php
  2. namespace Vendor\Model; //co to robi?
  3.  
  4. class Foo
  5. {
  6. }
nospor
No to jeszcze musisz poczytac o NAMESPACE smile.gif 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
gino
A ja dodam , bo jak piszesz
Cytat
bawię się PHP amatorsko, nieobiektowo

że masz masę czytania i zrozumienia smile.gif
nospor
Cytat(gino @ 15.12.2022, 14:21:46 ) *
A ja dodam , bo jak piszesz

że masz masę czytania i zrozumienia smile.gif

Ano. To moze faktycznie trzeba pokolei, bo jakies podstawy musza niestety byc.

Czyli:
NAMESPACE
AUTOLOADER
PSR

To tak na poczatek czy cos jeszcze koledzy?
sadistic_son
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?
Tomplus
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.
Salvation
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-wzorc...b5.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-podrec...ov.htm#format/e
Możesz też dorzucić sobie tą: https://helion.pl/ksiazki/kierunek-jakosc-j...ob.htm#format/e
A później: https://helion.pl/ksiazki/mistrz-czystego-k...vv.htm#format/e
Tomplus
@Salvation
Ale obecnie z to nie tą książkę, tylko wersję z 8ką powinien okiełznać: https://helion.pl/ksiazki/php-8-i-sql-progr...ql.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.
Salvation
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.
Tomplus
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.
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.
Invision Power Board © 2001-2024 Invision Power Services, Inc.