I am used to working in languages such as C#
/Java
/Python
where each class would have its own file, and for a class to see other classes, you would import the package containing those classes. How does this work in php
? The documentation shows you how to create classes, but I don't understand how it all fits together in a php
context. I know of the include statement, which just sticks the files together basically.
You can use __autoload
function __autoload($class_name) {
include 'classes/'.$class_name . '.php';
}
So place every single class in its own file in the classes folder. When you want to use that class it will include it. More info: http://php.net/manual/en/language.oop5.autoload.php
Update: When I answered this it was fully valid. Now it still works, but keep in mind PHP.net since then says this:
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.
The easiest way:
Init code:
set_include_path ( "./classes" );
spl_autoload_register ();
//class is automatically loaded from ./classes/myclass.php
$object_instance = new MyClass ();
As of PHP 5.3.0 , it is recommended that you use the spl_autoload_register() function because __autoload() is said to be deprecated some time in the future.
An easy way to use this function:
1) Place each class file into the 'classes' folder
2) Run an anonymous function inside spl_autoload_register() which specifies your class folder:
spl_autoload_register(function ($class) {
include 'classes/' . $class . '.php';
});
Now when you try to use a class that is not defined in your code yet, it will check that class folder one last time before giving you an error.
Imagine you have been making your object in PHP in a file called myObject.php
<?php
class myObject
{
public function __construct()
{
echo "Hello, World";
}
}
?>
And in another file, you would like to use the object (let's call this myfile.php). You would have to include your object - like this:
<?php
include("myObject.php");
$intance = new myObject();
?>
Quite simple.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With