Some of posts from this blog has been moved to dywicki.pl. You will be automatically redirected to new blog if you would submit comment.
New posts are published on dywicki.pl, this blog contains old content and it is not continued.

Niektóre posty z tego bloga zostały przeniesione do dywicki.pl. Zostaniesz automatycznie przekierowany jeśli bedzięsz chciał dodać komentarz.
Nowe posty sa publikowane na dywicki.pl, ten blog zawiera stare treści i nie jest kontynuowany.

Magiczne namespace..

Filed under PHP,PHP6,Wiadomości by

I oto się stało. Pierwszy raz użyłem przestrzeni nazw w PHP! Nie do wiary? A jednak. Nie było jakichkolwiek problemów z samą instalacją, ponieważ do pobrania jest paczka (pod Win ;)), która zachowuje się jak wszystkie inne pobrane z php.net. Przykłady podane na necie działają, więc nie pozostaje nic innego jak zabrać się za używanie przestrzeni nazw. :)

Oto listingi, które działają:

< ?php

import class a:::AFactory;
import class a:::A;

namespace a {
class AFactory {
public static function create() {
return new A;
}
}
private class A {}
}

// works perfectly:
AFactory::create();

// fails with 'Fatal error: Cannot use class 'a:::A' outside of its namespace, as it is private'
// new A;

?>

Oraz:

< ?php

import namespace a;

function __autoload($classname) {
foreach (get_imported_namespaces() as $ns) {
$filename = str_replace( ':::', '/', $ns ) . '/' . $classname . '.php';
if (file_exists($filename)) {
require_once($filename); // will require a/A.php
autoload_import_class($classname, $ns); // will import class a:::A
}
}
}

new A;

?>
// file a/A.php:
< ?php

namespace a {
class A {}
}

?>

Więcej informacji http://phpnamespaces.org/

6 responses so far

6 Responses to “Magiczne namespace..”

  1. slash says:

    I doczekales sie tego czego chciales (chcielismy) – jeszcze kilka drobiazgow i bedziemy mieli PHP Enterprise – szkoda tylko ze nie jest to w standardowej kompilacji – mam nadzieje, ze idea projektu stanie sie juz niedlugo standardem w PHP. Minusem tego jest fakt, iz prekompilowane packi oraz patche dostepne sa jak narazie tylko dla PHP 5.1.1 – chodz to i tak bardzo swieza wersja PHP – widac, iz projekt zyje

  2. MMP says:

    >> PHP 5.1.1 – chodz to i tak bardzo swieza wersja PHP
    3 wersje w te czy wewte ;)

  3. slash says:

    Hymm jak sie zastanowimy to praktycznie dwie 5.1.3 bylo, az jeden dzien. Pozatym przktycznie rzecz biorac ile hostingow ma php 5.1 ??

  4. slash says:

    Moj ma nawet 6.0 – http://127.0.0.1 – Wiesz pomijam dedyki – i dobre firmy hostingowe – mowie o masowce dla normalnych ludzi…

  5. Adi says:

    Przestrzenie nazw przydałby mi się akurat… ale za nim na dobre PHP 6.0 zagości na serwerach, to zapewne “trochę” czasu niestety minie…
    Wiecie może na kiedy jest przewidziana mniej więcej pierwsza beta PHP 6.0?

Leave a Reply