Reputation: 1671
I have file index.php
in directory Main
;
There are also directory Helpers
inside Main
with class Helper
.
I tried to inject class Helpers\Helper
in index.php
as:
<?
namespace Program;
use Helpers\Helper;
class Index {
public function __construct()
{
$class = new Helper();
}
}
But it does not work.
How to use namespace and use in PHP?
Upvotes: 4
Views: 148
Reputation: 7617
With Your Description, Your Directory Structure should look something similar to this:
Main*
-- Index.php
|
Helpers*
--Helper.php
If You are going by the book with regards to PSR-4 Standards, Your Class definitions could look similar to the ones shown below:
Index.php
<?php
// FILE-NAME: Index.php.
// LOCATED INSIDE THE "Main" DIRECTORY
// WHICH IS PRESUMED TO BE AT THE ROOT OF YOUR APP. DIRECTORY
namespace Main; //<== NOTICE Main HERE AS THE NAMESPACE...
use Main\Helpers\Helper; //<== IMPORT THE Helper CLASS FOR USE HERE
// IF YOU ARE NOT USING ANY AUTO-LOADING MECHANISM, YOU MAY HAVE TO
// MANUALLY IMPORT THE "Helper" CLASS USING EITHER include OR require
require_once __DIR__ . "/helpers/Helper.php";
class Index {
public function __construct(){
$class = new Helper();
}
}
Helper.php
<?php
// FILE NAME Helper.php.
// LOCATED INSIDE THE "Main/Helpers" DIRECTORY
namespace Main\Helpers; //<== NOTICE Main\Helpers HERE AS THE NAMESPACE...
class Helper {
public function __construct(){
// SOME INITIALISATION CODE
}
}
Upvotes: 2