Bonjour,
en commençant a travailler sur le plugin FusionInventory pour la 0.84
(on merge les différents plugin en 1 seul), on s'est rendu compte qu'on
risque d'avoir un très grand nombre de classes dans le dossier inc.
On en a discuté et on s'est dit que ca serait pratique et il me semble
que c'était prévu un peu plus tard, mais quitte à tout péter maintenant
pour la 0.84, on peut le faire de suite.
Donc on pourrait avoir la structure suivante :
inc/computer.class.php (class Computer)
inc/computer/disk.class.php (class ComputerDisk)
...
Je joins un premier patch qui permet de charger les fichiers dans le
bon dossier (fonction __autoload).
Qu'en pensez-vous?
Je peux bosser sur ce chantier cette semaine si on se met d'accord
(création des dossier, déplacement et renommage des fichiers de
classes...)
David Durieux
++
Index: inc/autoload.function.php
===================================================================
--- inc/autoload.function.php (revision 16265)
+++ inc/autoload.function.php (working copy)
@@ -112,10 +112,17 @@
}
$dir = GLPI_ROOT . "/inc/";
+ $dirinc = array();
+ $filename = '';
+ preg_match_all('/([A-Z])([a-z]+([_][A-Z]([a-z]+))?)/', $classname, $dirinc);
if ($plug=isPluginItemType($classname)) {
$plugname = strtolower($plug['plugin']);
$dir = GLPI_ROOT . "/plugins/$plugname/inc/";
$item = strtolower($plug['class']);
+ if(isset($dirinc[0][0])
+ AND $dirinc[0][0] == 'Plugin') {
+ unset($dirinc[0][0]);
+ }
// Is the plugin activate ?
// Command line usage of GLPI : need to do a real check plugin activation
if (isCommandLine()) {
@@ -153,8 +160,8 @@
// No errors for missing classes due to implementation
if (!in_array($item,$CFG_GLPI['missingclasses'])){
- if (file_exists("$dir$item.class.php")) {
- include_once ("$dir$item.class.php");
+ if (file_exists("$dir".strtolower(implode("/", $dirinc[0])).".class.php")) {
+ include_once ("$dir".strtolower(implode("/", $dirinc[0])).".class.php");
if (isset($_SESSION['glpi_use_mode'])
&& $_SESSION['glpi_use_mode'] == Session::DEBUG_MODE) {
$DEBUG_AUTOLOAD[] = $classname;
_______________________________________________
Glpi-dev mailing list
[email protected]
https://mail.gna.org/listinfo/glpi-dev