Home arrow PHP arrow Page 2 - Working With Different Namespaces in PHP 5

Linking a single class to a specified namespace - PHP

Namespaces have been available for a long time in mature object-oriented languages like Java and C++. However, there’s good news on the horizon, since they will also be available in PHP 5.3 (hopefully). That’s a good reason to start learning how to use them within the context of object-oriented PHP applications. This is the second part of a four-part series that shows you how.

TABLE OF CONTENTS:
  1. Working With Different Namespaces in PHP 5
  2. Linking a single class to a specified namespace
  3. Linking two classes to different namespaces
  4. Working with objects that belong to different namespaces
By: Alejandro Gervasio
Rating: starstarstarstarstar / 4
November 19, 2008

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement

Before I explain how to associate two classes that share the same name to different namespaces, it’d be a good idea to review the practical example built in the previous article of the series. It demonstrated how to perform this process with only one class.

Basically, the code sample corresponding to the aforementioned example looked like this:


namespace UserManager::CMS;

 

class User{

private $firstName;

private $lastName;

private $email;

public function __construct($firstName,$lastName,$email){

if(!$firstName||strlen($firstName)>32){

throw new Exception('Invalid First Name parameter!');

}

if(!$lastName||strlen($lastName)>32){

throw new Exception('Invalid Last Name parameter!');

}

if(!$email||!preg_match("/^.+@.+..+$/",$email)){

throw new Exception('Invalid Email parameter!');

}

$this->firstName=$firstName;

$this->lastName=$lastName;

$this->email=$email;

}

// get user's first name

public function getFirstName(){

return $this->firstName;

}

// get user's last name

public function getLastName(){

return $this->lastName;

}

// get user's email

public function getEmail(){

return $this->email;

}

}


try{

// create new instance of 'User' class by using the specified namespace

$user=new UserManager::CMS::User('Alejandro','Gervasio','alejandro@domain.com');

// display user data

echo 'First Name: '.$user->getFirstName().'<br />';

echo 'Last Name: '.$user->getLastName().'<br />';

echo 'Email: '.$user->getEmail().'<br />';

}

catch(Exception $e){

echo $e->getMessage();

exit();

}


As you can see, the above example shows a typical case where a single class has been tied to a concrete namespace. Speaking more concretely, in this case the previous “User” class has been linked to a “UserManagement::CMS” namespace by means of the pertinent “namespace” keyword.

Finally, an instance of this class is created by using the following expression:


$user=new UserManager::CMS::User('Alejandro','Gervasio','alejandro@domain.com');


That's pretty simple to understand, right? The actual functionality of using namespaces, however, is revealed when two or more classes that share the same name are included in one single PHP application. It’s probable that at this moment you’ll be wondering how this can be achieved without getting an error from the PHP interpreter.

As you may guess, it’s possible to associate each of these classes with a different namespace, in this way solving any naming conflicts in an elegant manner.

In the following section, I’m going to explain in detail how to perform this task. To learn how this will be done, please click on the link that appears below and read the next few lines.



 
 
>>> More PHP Articles          >>> More By Alejandro Gervasio
 

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort
   

PHP ARTICLES

- Hackers Compromise PHP Sites to Launch Attac...
- Red Hat, Zend Form OpenShift PaaS Alliance
- PHP IDE News
- BCD, Zend Extend PHP Partnership
- PHP FAQ Highlight
- PHP Creator Didn't Set Out to Create a Langu...
- PHP Trends Revealed in Zend Study
- PHP: Best Methods for Running Scheduled Jobs
- PHP Array Functions: array_change_key_case
- PHP array_combine Function
- PHP array_chunk Function
- PHP Closures as View Helpers: Lazy-Loading F...
- Using PHP Closures as View Helpers
- PHP File and Operating System Program Execut...
- PHP: Effects of Wrapping Code in Class Const...

Developer Shed Affiliates

 


Dev Shed Tutorial Topics: