2009-12-31 2 views
0

La fonction magique __autoload fonctionne uniquement pour les classes, n'est-ce pas? Que diriez-vous d'autres fichiers comme des modèles? J'adorerais voir une solution où je n'ai pas à m'inquiéter du gros problème "où est le fichier? Quel est le chemin? Quand dois-je l'inclure?". Serait un grand gain de temps.Y at-il quelque chose à inclure automatiquement les fichiers autres que les classes en PHP?

Performance? Eh bien ... dans ce cas, je préférerais un développement plus rapide que la performance, parce que ... hey..lets face à lui, 99,99% de nos sites Web que nous faisons sont rarement visités de toute façon. Et quand le jour viendra où nous aurons un million de visiteurs, nous serons probablement un grand, Inc. et paierons 10 devs pour l'améliorer.

Eh bien, au moins pour mon cadre.

+0

Si votre modèle était une classe, il travaillerait avec '__autoload' aussi. =) –

+0

n'a pas beaucoup de sens pour faire un modèle une classe;) rofl ... J'ai ViewController, Vues, ​​et Vues utilisent des modèles. Ce sont simplement des fichiers "html" avec .php à la fin pour PHP comme langage de template. – openfrog

Répondre

5

Regardez set_include_path(). Il vous permet de définir une liste de répertoires dans lesquels PHP apparaîtra lorsque vous essayez d'inclure un fichier. Donc, si vous avez tous vos modèles dans un répertoire, par exemple templates/, il vous suffit:

set_include_path(get_include_path() . PATH_SEPARATOR . 'templates'); 
//... 
include 'mytemplate.php'; 

Et PHP trouvera le bon fichier. Cela nécessite toujours un include(), mais cela aide. En outre, être explicite sur les fichiers que vous incluez est une bonne chose.

+0

BON un, vraiment bon! Merci mec!! – openfrog

1

Vous pouvez aller mieux.

Regardez dans le fichier php.ini pour auto_prepend_file et auto_append_file.

auto_prepend_file NULL PHP_INI_PERDIR PHP_INI_ALL en PHP < = 4.2.3. auto_append_file PHP_INI_PERDIR PHP_INI_ALL en PHP < = 4.2.3.

chaîne auto_prepend_file

Specifies the name of a file that is automatically parsed before the main file. The file is included as if it was called with the require() function, so include_path is used. 

The special value none disables auto-prepending. 

chaîne auto_append_file

Specifies the name of a file that is automatically parsed after the main file. The file is included as if it was called with the require() function, so include_path is used. 

The special value none disables auto-appending. 

    Note: If the script is terminated with exit(), auto-append will not occur. 
Questions connexes