Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Stałe w programowaniu obiektowym
eerie
post
Post #1





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 3.08.2017

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


Witam

Czy używanie stałych w programowaniu obiektowym pod php7 to dobra praktyka? Pytam, bo gdy programowaliśmy w języku Java na strudiach, to nie pamiętam, abyśmy używali stałych. Poniżej podaję kod przykładowej klasy konfiguracyjnej mojej aplikacji. Prosiłbym o sugestie, czy może mieć taki kształt? Czy zamiast zmiennych nie powinienem wprowadzić stałych? Dopiero uczę się php7 i nie mam pewności, czy stałe w klasie konfiguracyjnej to dobry pomysł...

https://github.com/eerie79/framework2_svn/b...Core/Config.php

Pozdrawiam
Robert
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
krzywy5830
post
Post #2





Grupa: Zarejestrowani
Postów: 38
Pomógł: 5
Dołączył: 14.10.2012

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


Cytat(darko @ 12.01.2018, 11:15:10 ) *
To, co nazywasz stałymi, to w rzeczywistości chronione pola statyczne klasy, do definiowania stałych używamy słowa kluczowego CONST:

  1. class Config
  2. {
  3. CONST MYSQL_HOST = 'localhost';


Dodam, że jeśli chcesz żeby stała była protected to możesz to zrobić jeśli masz wersję PHP 7.1:

  1. class Config
  2. {
  3. protected CONST MYSQL_HOST = 'localhost';


No i nospor ma rację, taka konfiguracja powinna być w oddzielnym pliku. Ja zwykle tworzę plik o nazwie np. database.php z taką zawartością:

  1. <?php
  2. return
  3. [
  4. 'host' => 'localhost',
  5. 'port' => '3306'
  6. 'db_name' => 'nazwa bazy',
  7. 'db_user' => 'użytkownik',
  8. 'db_password' => 'hasło'
  9. ];


Potem w tej klasie Config możesz zrobić:

  1. class Config
  2. {
  3. public function __construct()
  4. {
  5. $database = require('database.php');
  6. echo($database['db_user']); //wyświetli "użytkownik", oczywiście nie dawaj tego echo, to tylko przykład żeby ci pokazać jak to działa
  7. }
  8. }


No i jeszcze to:

  1. public static function getServerDomain(): string
  2. {
  3. return str_replace('www.', '', $_SERVER['SERVER_NAME']);
  4. }
  5.  
  6. public static function getServerEmail(): string
  7. {
  8. return 'kontakt@' . str_replace('www.', '', $_SERVER['SERVER_NAME']);
  9. }


Po co stworzyłeś metodę getServerDomain() skoro potem jej nie używasz? Możesz to zamienić na:

  1. public static function getServerDomain(): string
  2. {
  3. return str_replace('www.', '', $_SERVER['SERVER_NAME']);
  4. }
  5.  
  6. public static function getServerEmail(): string
  7. {
  8. return 'kontakt@' . self::getServerDomain();
  9. }


Poza tym $administratorEmail czy $moderatorEmail przecież mogą się zmieniać. Warto to umieścić np. w bazie danych i cachować.

Ten post edytował krzywy5830 12.01.2018, 13:23:56
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 14:05