Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Co oznacza taki zapis ClassName::class
Forum PHP.pl > Forum > Przedszkole
piekarz
Witam.
Jak w tytule. Zarówno w symfony jak i laravel często widzę taki zapis (przeważnie w serviceContainer ale nie tylko). Chciałbym się w końcu dowiedzieć jak się taki zapis nazywa i co to robi.

Dziękuję.
Pyton_000
Miłej lektury smile.gif http://php.net/manual/en/language.oop5.constants.php
piekarz
A coś po polsku? Jeszcze mój angielski nie jest na takim poziomie abym sobie swobodnie czytał takie skomplikowane zagadnienia.
piekarz
Cytat(viking @ 7.12.2018, 19:32:54 ) *

Mało śmieszne :/
Jak zwykle wychodzi masło maślane.
viking
Cytat
Stała specjalna ::class jest dostępna od wersji PHP 5.5.0 i pozwala na w pełni kwalifikowane rozwiązywanie nazw klas podczas kompilacji, jest to przydatne w przypadku klas z przypisanymi nazwami:

Przykład # 3 Przykład klasy Namespaced :: class
<?php
namespace foo {
class bar {
}

echo bar ::class; // foo\bar
}
?>


Akurat bardzo czytelnie przetłumaczone. Zresztą naprawdę tych 5 linii kodu nie rozumiesz?
piekarz
Kod rozumiem, ale tego nie rozumiem:

Cytat
pozwala na w pełni kwalifikowane rozwiązywanie nazw klas podczas kompilacji, jest to przydatne w przypadku klas z przypisanymi nazwami:


I tak samo w symfony nie rozumiem po co w pliku "config/bundle.php" mam zapisy typu:

  1. Symfony\Bundle\FrameworkBundle\FrameworkBundle::class

Co mi to daje? Jak ja gdybym chciał coś własnego napisać mogę to wykorzystać.

Czy to jest takie proste i oczywiste że nigdzie u polskich blogerów php czy kursach nie widziałem wpisów na ten temat, tylko ja w zły sposób o tym myślę i dlatego nie mogę zaskoczyć.
viking
Za czasów prehistorycznych żeby wyciągnąć coś z kontenerów posługiwano się prostymi nazwami typu aaa lub ręcznie pisało \A\B\C jako string. Powodowało to możliwość wystąpienia błędu i eliminowało podpowiadanie kodu w edytorach. Dzięki ::class masz zwróconą pełną nazwę klasy która niezależnie jak ją podstawisz np przez różnorakie łączenie definicji NS, zawsze będzie na to samo wskazywało.
piekarz
Czyli jeśli dobrze rozumiem można w łatwy sposób później stworzyć instancje danej klasy na podstawie zwróconego tego stringa czy tak?
viking
Na symfony tak tego nie widać. Zobacz zenda
https://docs.zendframework.com/zend-service...er/quick-start/
piekarz
Chyba rozumiem, chyba. Dzięki za pomoc.
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-2025 Invision Power Services, Inc.