Chciałbym napisać autolader klas który obsługuje
use CRM\model;
$u = new user();
fajnie jak by autoloader miał po prostu listę użytych "use ..." ;] ale nie znajduje takiej funkcji :/
Chciałbym napisać autolader klas który obsługuje
use CRM\model;
$u = new user();
fajnie jak by autoloader miał po prostu listę użytych "use ..." ;] ale nie znajduje takiej funkcji :/
use
to tylko lukier składniowy - autoloader otrzymuje pełną nazwę klasy, więc nie ma żadnej potrzeby specjalnego przetwarzania use
ów.
Nie uważasz, że prościej i szybciej byłoby to sprawdzić na własną rękę (pisząc autoloader) niż tworzyć post na forum? ;-p
Btw, jeśli chcesz podejść do tego profesjonalnie, nie baw się we własne autoloadery, tylko skorzytaj z tego generowanego przez Composera.
niestety dostaję w autoloaderze "user" a nie '\CRM\model\user' więc autoloader nie wie gdzie szukać tej klasy
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
function autoload($class) {
echo "potrzzebuje klasy: ".$class." <br>";
//$prefix = 'Foo\\Bar\\';
$prefix = 'martianCRM';
if (substr($class, 0, strlen($prefix))==$prefix){
$class= substr($class, strlen($prefix));
}
$base_dir = __DIR__ . '/src/';
echo $base_dir."<br>";
$len = strlen($prefix);
$relative_class = substr($class, $len);
$filename = $base_dir . str_replace("\\", '/', $class) . ".php";
echo $filename."<br>";
if (file_exists($filename)) {
include($filename);
if (class_exists($class)) {
echo "jest <br>";
// @@@@@ jakieś zabezpiueczenia czy coś
include $filename;
if (class_exists($class)) {
return TRUE;
}
}
}
echo "NIE MA <BR>" ;
return false; // Zwróć "true", informując, że klasa została znaleziona.
}
spl_autoload_register('autoload');
use \martianCRM\model;
$b = new user();
chcę załapać podstawy żeby móc używać z głową autoloadera z composera