Hi,

At first "import Zend::DB" is equivalent of "import Zend:DB as DB";

<?php
require 'Zend/Db/Connection.php';
import Zend::DB;

After these statement you can use any classes and functions from Zend::DB
namespace qualifying them by prefix "DB::".

$x = DB::Connection();

Thanks. Dmitry.

> -----Original Message-----
> From: Arpad Ray [mailto:[EMAIL PROTECTED] 
> Sent: Monday, July 23, 2007 8:37 PM
> To: [EMAIL PROTECTED]
> Cc: 'Hans Lellelid'; 'PHP internals'
> Subject: RE: [PHP-DEV] Simple Namespace Proposal
> 
> 
> 
> Hi Dmitry,
> 
> What made me think it's supported is that both the proposal 
> and tests include namespace imports. Quoting from the proposal:
> 
> > Namespace or class name can be imported:
> > 
> > <?php
> > require 'Zend/Db/Connection.php';
> > import Zend::DB;
> 
> And ns_002.phpt:
> 
> > import test::ns1;
> 
> So if not importing everything in the namespace, what exactly 
> are these statements supposed to do?
> 
> I'm also curious why the direct importing of classes would be 
> the only exception (why not functions too?), is this an 
> unavoidable inconsistency?
> 
> Regards,
> 
> Arpad
> 
> 
> 
> On 7/23/2007, "Dmitry Stogov" <[EMAIL PROTECTED]> wrote:
> 
> >Hi Arpad,
> >
> >You have to always use namespace name as prefix for acesing 
> namespace 
> >entities. (The only exception is direct import of calss).
> >So expectatins in your tests are wrong.
> >
> >Thanks. Dmitry.
> >
> >> -----Original Message-----
> >> From: Arpad Ray [mailto:[EMAIL PROTECTED]
> >> Sent: Sunday, July 15, 2007 7:32 PM
> >> To: Dmitry Stogov
> >> Cc: 'Hans Lellelid'; 'PHP internals'
> >> Subject: Re: [PHP-DEV] Simple Namespace Proposal
> >>
> >>
> >> Dmitry Stogov wrote:
> >> > The patch is already committed to the HEAD.
> >> >
> >> > Dmitry.
> >> >
> >> There seem to be some problems with importing across 
> files. The tests 
> >> currently in CVS are all in single files so it's not immediately 
> >> obvious. When a namespace is declared in one file and imported in 
> >> another, classes must be addressed absolutely either in 
> the import or 
> >> when used, and functions must be addressed absolutely when used, 
> >> irrespective of imports.
> >>
> >> I've attached some phpt files to test this, but here's a simple
> >> illustration:
> >>
> >> foo.php:
> >> <?php
> >> namespace foo;
> >> function foobar() { }
> >> class Foobaz { }
> >> ?>
> >>
> >> bar.php:
> >> <?php
> >> import foo;
> >> foobar(); // error
> >> new Foobaz; // error
> >> foo::foobar(); // ok
> >> new foo::Foobaz; // ok
> >>
> >> import foo::foobar;
> >> import foo::Foobaz;
> >> foobar(); // error
> >> new Foobaz; // ok
> >>
> >> import foo::foobar as foobar2;
> >> foobar2(); // error
> >> ?>
> >>
> >>
> >> Arpad
> >>
> >
> 

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to