2012-05-15 22 views
7

Tôi đang cố gắng tìm cách áp dụng hàng loạt các không gian tên này, vì điều này sẽ không thuận tiện để viết ra. Tôi biết tôi có thể chỉ đơn giản là làm, sử dụng jream\ as j nhưng tôi muốn xem nếu nó có thể tránh dấu gạch chéo ngược.Có một lối tắt không gian tên PHP cho điều này không?

require '../jream/Autoload.php'; 

use jream\Autoload as Autoload, 
    jream\Database as Database, 
    jream\Exception as Exception, 
    jream\Form as Form, 
    jream\Hash as Hash, 
    jream\Output as Output, 
    jream\Registry as Registry, 
    jream\Session as Session; 

new Autoload('../jream'); 

Không có cách nào để nói điều gì đó dọc theo các dòng sau: jream\\* as *;?

Bất cứ lời khuyên sẽ được đánh giá :)

Trả lời

6

Ít nhất bạn có thể bỏ qua tất cả các thừa as răng cưa:

use jream\Autoload, 
    jream\Database, 
    jream\Exception, 
    jream\Form, 
    jream\Hash, 
    jream\Output, 
    jream\Registry, 
    jream\Session; 

Nếu bạn muốn sử dụng tất cả mọi thứ trong không gian tên mà không cần gõ nó ra từng người một, sau đó thực sự là sự lựa chọn duy nhất là để bí danh không gian tên như một toàn thể và sử dụng một dấu chéo ngược:

use jream as j; 

new j\Autoload; 
+0

Cảm ơn, đây có lẽ là cách tốt nhất để thực hiện. – JREAM

3

Không có cách nào để nói điều gì đó dọc theo các dòng này: jream \ * là *; ?

Không, nhưng bạn có thể làm điều này:

// use-jream.php 
class Autoload extends jream\Autoload {} 
class Database extends jream\Database {} 
... 

// index.php 
require_once 'use-jream.php' 

new Autoload('../jream'); 

Nhưng tôi sẽ không thực sự khuyên bạn nên làm điều đó.

Và tất nhiên, nếu bạn muốn chỉ cần thay đổi không gian tên mặc định:

namespace jream; 

new Autoload('../jream'); 

Đó là tất cả một import jream.* bao giờ có thể có nghĩa trong PHP, kể từ PHP đã hoàn toàn không có cách nào để xác định xem một lớp có thể có thể tồn tại trong một không gian tên nhất định trừ khi bạn thông báo cho nó.

+0

Xin cảm ơn câu trả lời, tôi thích phần cuối cùng về việc thiết lập một không gian tên! – JREAM

Các vấn đề liên quan