Here's a new problem to solve, How would you include classes without having to write include 'path-to-class-file' on top of the file for every class file- that needs to be included?
Using spl_autoloader_register function.
Here's the directory structure
So what do we write in the autoloader.inc.php file?
<?php
spl_autoload_register('autoLoader');
function autoLoader($className){
$path = "classes/";
$extension = ".class.php";
$fullPath = $path.$className.$extension;
if(!file_exists($fullPath)){
return false;
}
include_once $fullPath;
}
?>
Now we can easily include the autoloader file in the index.php file which then will give access to any class file we have in the classes directory.
Here's whats in the index.php file
<?php
<?php
include 'includes/autoloader.inc.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<?php
$tesla = new Car("Modelx","black","2019");
echo $tesla->getName();
echo "<br>";
echo $tesla->getbodyColor();
echo "<br>";
echo $tesla->getYear();
$tesla->setName("ModelY");
echo "<br>";
echo "<br>";
echo $tesla->getName();
echo "<br>" ;
echo Car::$NoOfTyres;
Car::setNoOfTyres(6);
echo "<br>";
echo Car::$NoOfTyres;
?>
</body>
</html>
?>
You will get the out put as follows:
Top comments (3)
i just scrolled down to comments just to say that, composer is way more easy to use..
Thanks guys :) I m learning from you!