Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Side Effects Rule PSR-1 konflikty
trzczy
post
Post #1





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

Ostrzeżenie: (0%)
-----


Przedstawiam 2 kody, które są niezgodne z Side Effects Rule.
KOD1
  1. <?php
  2. require __DIR__ . '/vendor/autoload.php';
  3. $obj = new Johny\Foo\Bar();


KOD2
  1. <?php
  2. require __DIR__ . '/vendor/autoload.php';
  3. include 'addresses_for_mailing.php';
  4. $mailer = new Johny\Foo\Mailer($addresses);
  5. $mailer->send();
  6. $mailer->report();


Mam nadzieję, że mniej więcej widać, co programista chciał osiągnąć...

KOD1
Wczytuje autoloader i od razu z niego korzysta.

KOD2
Korzysta z klasy Mailer oraz spisu adresów zawartego w oddzielnym pliku. Potem wysyła mejle i sporządza raport z wysyłania.

I teraz moje pytanie. Jak zbudować te aplikacje, żeby były zgodne z PSR-1 Side Effects Rule. Czy da się zachowując odrębność plików, czyli bez umieszczenia wszystkiego w jednym pliku. Czy może programiści jednak nie przejmują się tą zasadą?

Z góry dziękuję

Ten post edytował trzczy 29.07.2016, 10:19:37
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Fred1485
post
Post #2





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

Ostrzeżenie: (0%)
-----


Nie wiem na ile moja odpowiedź jest zgodna ze standardami, ale skoro w pliku "adresses_for_mailing.php" trzymasz jedynie adresy mailowe, może wartoby przenieść to do jakiejś klasy, która byłaby za to odpowiedzialna.

  1. class Addresses
  2. {
  3. public static function load()
  4. {
  5. return 'addresses';
  6. }
  7. }
Go to the top of the page
+Quote Post
kpt_lucek
post
Post #3





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Fred1485 @ 29.07.2016, 18:48:03 ) *
Nie wiem na ile moja odpowiedź jest zgodna ze standardami, ale skoro w pliku "adresses_for_mailing.php" trzymasz jedynie adresy mailowe, może wartoby przenieść to do jakiejś klasy, która byłaby za to odpowiedzialna.

  1. class Addresses
  2. {
  3. public static function load()
  4. {
  5. return 'addresses';
  6. }
  7. }


+ Namespace i konkret autoloader
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 04:13