konto usunięte

Temat: Twoje includowanie

Cześć,
chciałem zapytać, jakie macie strategie na includowanie?
Jak najzgrabniej ominąć taki problem wg. was:

plik index.php
<?php
include_once ('class/login.php');
?>

plik class/login.php:
<?php
include_once ('db.php');
?>

plik db.php:
// obiekt POD

Kiedy odpalam plik class/login.php jest ok, ale kiedy odpalę index.php robi się kaszana, plik class/login.php szuka już źle sb.php

Dzięki za sugestie.
Pozdrawiam

konto usunięte

Temat: Twoje includowanie

konrad kluźniak:
Cześć,
chciałem zapytać, jakie macie strategie na includowanie?
Jak najzgrabniej ominąć taki problem wg. was:

plik index.php
<?php
> include_once ('class/login.php');
?>

plik class/login.php:
<?php
> include_once ('db.php');
?>

plik db.php:
// obiekt POD

Kiedy odpalam plik class/login.php jest ok, ale kiedy odpalę index.php robi się kaszana, plik class/login.php szuka już źle sb.php

Dzięki za sugestie.
Pozdrawiam

http://php.net/manual/en/language.oop5.autoload.php

Oraz pogooglaj troche o strategiach uzycia.
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: Twoje includowanie

konrad kluźniak:
chciałem zapytać, jakie macie strategie na includowanie?
(...)
Kiedy odpalam plik class/login.php jest ok, ale kiedy odpalę index.php robi się kaszana, plik class/login.php szuka już źle sb.php
Pytanie: musisz mieć includowanie tak jak pokazałeś? Czyli musisz sam, niejako ręcznie dołączać pliki?

Może dobrze byłoby pójść w kierunku automatycznego ładowania / includowania plików? O tym wspomniał wyżej Łukasz. Dodam od siebie:
a) http://www.google.pl/search?q=php+autoload
b) frameworki używają autoładowania i mają własne loaderyKrzysztof N. edytował(a) ten post dnia 20.11.11 o godzinie 18:13
Tomasz Zadora

Tomasz Zadora programuję

Temat: Twoje includowanie

Jeśli chodzi o autoloading za pewien standard można uznać specyfikację/propozycję PSR-0:

https://github.com/php-fig/fig-standards/blob/master/ac...

konto usunięte

Temat: Twoje includowanie

to mi pasuje najbardziej. jeśli ktoś szuka - polecam.
Nie ma __autoload, które będzie prawdopodobnie wyrzucone (jak mówi manual):
---------------------------------------------------------------------------

class load {
public static $instance;
private $_src=array('../','class/', 'helper/');
private $_ext=array('.php', 'class.php', 'lib.php');

/* initialize the autoloader class */
public static function init(){
if(self::$instance==NULL){
self::$instance=new self();
}
return self::$instance;
}

/* put the custom functions in the autoload register when the class is initialized */
private function __construct(){
spl_autoload_register(array($this, 'clean'));
spl_autoload_register(array($this, 'dirty'));
}

/* the clean method to autoload the class without any includes, works in most cases */
private function clean($class){
global $docroot;
$class=str_replace('_', '/', $class);
spl_autoload_extensions(implode(',', $this->_ext));
foreach($this->_src as $resource){
set_include_path($docroot . $resource);
spl_autoload($class);
}
}

/* the dirty method to autoload the class after including the php file containing the class */
private function dirty($class){
global $docroot;
$class=str_replace('_', '/', $class);
foreach($this->_src as $resource){
foreach($this->_ext as $ext){
@include($docroot . $resource . $class . $ext);
}
}
spl_autoload($class);
}

}

konto usunięte

Temat: Twoje includowanie

Może dobrze byłoby pójść w kierunku automatycznego ładowania / includowania plików? O tym wspomniał wyżej Łukasz. Dodam od siebie:
a) http://www.google.pl/search?q=php+autoload
b) frameworki używają autoładowania i mają własne loadery

Autoload raczej nie, od kiedy poczytałem Manual :)

konto usunięte

Temat: Twoje includowanie

Konrad Kluźniak:
Może dobrze byłoby pójść w kierunku automatycznego ładowania / includowania plików? O tym wspomniał wyżej Łukasz. Dodam od siebie:
a) http://www.google.pl/search?q=php+autoload
b) frameworki używają autoładowania i mają własne loadery

Autoload raczej nie, od kiedy poczytałem Manual :)

Tzn. co poczytałeś?
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: Twoje includowanie

Konrad Kluźniak:
Może dobrze byłoby pójść w kierunku automatycznego ładowania / includowania plików? O tym wspomniał wyżej Łukasz. Dodam od siebie:
a) http://www.google.pl/search?q=php+autoload
b) frameworki używają autoładowania i mają własne loadery
Autoload raczej nie, od kiedy poczytałem Manual :)
Dlaczego?Krzysztof N. edytował(a) ten post dnia 16.12.11 o godzinie 23:33

konto usunięte

Temat: Twoje includowanie

Krzysztof N.:
Konrad Kluźniak:
Autoload raczej nie, od kiedy poczytałem Manual :)
Dlaczego?
Właśnie?

konto usunięte

Temat: Twoje includowanie

Michał Wachowski:
Krzysztof N.:
Konrad Kluźniak:
Autoload raczej nie, od kiedy poczytałem Manual :)
Dlaczego?
Właśnie?

no jak to dlaczego ? bo "poczytałem Manual" :D no przecież manual przeczytał! A wiadomo, że jak się przeczyta manual, to "autoload raczej nie" :D

konto usunięte

Temat: Twoje includowanie

Krzysztof N.:
Konrad Kluźniak:
Może dobrze byłoby pójść w kierunku automatycznego ładowania / includowania plików? O tym wspomniał wyżej Łukasz. Dodam od siebie:
a) http://www.google.pl/search?q=php+autoload
b) frameworki używają autoładowania i mają własne loadery
Autoload raczej nie, od kiedy poczytałem Manual :)
Dlaczego?
spl_autoload_register() provides a more flexible alternative for autoloading classes. For this reason, using __autoload() is discouraged and may be deprecated or removed in the future.
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: Twoje includowanie

Konrad Kluźniak:
spl_autoload_register() provides a more flexible alternative for autoloading classes. For this reason, using __autoload() is discouraged and may be deprecated or removed in the future.
Zend lub Symfony (1.4, 2.0) używają __autoload()? Czy ja pisałem coś o __autoload()? Dla przypomnienia zobacz sam:
Krzysztof N.:
Może dobrze byłoby pójść w kierunku automatycznego ładowania / includowania plików?
(...)
b) frameworki używają autoładowania i mają własne loadery
Wojciech K.

Wojciech K. realizator pomysłów
własnych

Temat: Twoje includowanie

Konrad Kluźniak:

jeśli odwołujesz się do pliku/podfolderu, który na pewno jest w tym samym folderze, używaj "./......" - to skraca czas odwołania się do pliku - czasem o połowę.

jeśli masz ustawiony w Apaczu odpowiednio chroot, możesz po prostu odwoływać się "/......."

konto usunięte

Temat: Twoje includowanie

Użyj ścieżek absolutnych i bądź szczęśliwy. :-)

konto usunięte

Temat: Twoje includowanie

Jarosław Fedewicz:
Użyj ścieżek absolutnych i bądź szczęśliwy. :-)

Potwierdzam, ścieżki absolutne/bezwzględne to o wiele lepsze niż relatywne.

I w ewentualnych komunikatach o błędzie przy wczytaniu pliku, od razu widać gdzie szukał i nie ma dziwnego kombinowania "a względem czego to jest".



Wyślij zaproszenie do