Mam zwyczaj używania funkcji include() w skryptach php. Chciałbym wiedzieć, czy to dobre podejście. Używam tylko dużo, ponieważ sprawia, że kod wygląda lepiej na programowanie przyszłościowe.Używanie za dużo include() w php
Odpowiedz
skorzystać z funkcji php automatycznie ładowanej
przykład:
function __autoload($class_name) {
include $class_name . '.php';
}
dowolnym momencie wystąpienia nową klasę. PHP automagicznie wywołuje funkcję __autoload z jednym argumentem, tj. Nazwą klasy. rozważyć poniższy przykład
$user = new User():
jeśli instancję obiektu użytkownika tutaj funkcja autoload nazywa, próbuje dołączyć plik z tego samego katalogu. (w odniesieniu do powyższej funkcji automatycznego ładowania). teraz możesz zaimplementować własną logikę w celu automatycznego ładowania klas. bez względu na to, w którym katalogu się znajduje. Więcej informacji znajdziesz pod tym linkiem: http://in.php.net/autoload.
Aktualizacja: @RepWhoringPeeHaa, ty to prawidłowe kumpel powiedział. jest więcej korzyści z używania spl_autoload niż prosta funkcja automatycznego ładowania. Główną korzyścią, jaką widzę, jest to, że więcej niż jedna funkcja może być użyta lub zarejestrowana.
np
function autoload_component($class_name)
{
$file = 'component/' . $class_name . '.php';
if (file_exists($file)) {
include_once($file);
}
}
function autoload_sample($class_name)
{
$file = 'sample/' . $class_name . '.php';
if (file_exists($file)) {
include_once($file);
}
}
spl_autoload_register('autoload_component');
spl_autoload_register('autoload_sample');
Zamiast używać, możesz zajrzeć do autoloading.
Jeśli rozwój zorientowany obiektowo i mieć pliku dla każdej klasy, należy rozważyć wdrożenie funkcji autoloadera które automatycznie wywołuje include
gdy klasa jest używana, ale jeszcze nie załadowany:
$callback = function($className) {
// Generate the class file name using the directory of this initial file
$fileName = dirname(__FILE__) . '/' . $className . '.php';
if (file_exists($fileName)) {
require_once($fileName);
return;
}
};
spl_autoload_register($callback);
Nigdy jej nie użyłem. W tym celu muszę się najpierw nauczyć. Więc gdzie mogę się tego nauczyć? Link może być pomocny. Z góry dziękuję – yusufiqbalpk
- 1. Pamięć php za dużo za dużo
- 2. Czy można umieścić dużo PHP w witrynie?
- 3. PHP include wewnątrz include (innym katalogu)
- 4. PHP auto include
- 5. mysql za dużo kolumn?
- 6. Podmioty za dużo?
- 7. PHP include z innej domeny
- 8. Gradle za dużo buduję
- 9. PHP Include: Long Path Issue
- 10. Ile zmiennych sesji na użytkownika jest za dużo? - PHP
- 11. niezdefiniowana zmienna błąd w PHP include file
- 12. Używanie include do dynamicznego wskazywania na HTML
- 13. Używanie #include do załadowania kodu OpenCL
- 14. gdy [: punct:] jest za dużo
- 15. Równoważnik include() w HTML
- 16. trampolina pobiera za dużo CPU
- 17. Używanie zewnętrznego adresu URL w Ng-include w AngularJS
- 18. Ile pól ma "za dużo" w tabeli?
- 19. Używanie => w PHP
- 20. PHP - Czy funkcja "include" jest bezpieczna?
- 21. Dlaczego funkcja include ('php: // input') nie działa?
- 22. Odpowiednik JSP do funkcji PHP include()?
- 23. Dlaczego na stosie jest za dużo miejsca?
- 24. Różnica między {% include '' %} i {{include ('')}} w Gałązka
- 25. Twig: render vs include
- 26. W tym cały katalog w PHP lub Wildcard do użycia w PHP Include?
- 27. Używanie @since w kodzie PHP
- 28. Ile danych sesji jest za dużo?
- 29. mysql - ile kolumn jest za dużo?
- 30. Ile JSON jest za dużo JSON?
@ yusufiqbalpk, jeśli chcesz dowiedzieć się więcej. proponuję zacząć od poznania koncepcji OOPS w PHP. tutaj jest link, aby zacząć http://net.tutsplus.com/tutorials/php/object-oriented-php-for-beginners/ –
Wszystkie odpowiedzi były dobre, ale wybrałem cię dla twojego tutoriala. Najlepszy facet. – yusufiqbalpk
@ yusufiqbalpk możesz rozważyć "nowe" 'spl_autoload' zamiast powyższych. – PeeHaa