Tôi đã sử dụng phpsh trong một thời gian và đã hoạt động tốt trong quá khứ. Nhưng sự hỗ trợ không gian tên của nó vẫn không phải là rất tốt và điều này có thể khá bực bội.REPL/shell tương tác với hỗ trợ PHP 5.3 thích hợp?
Những thứ như \Somespace\Someclass::someStaticFunction()
không hoạt động mà không tắt kiểm tra xem có tồn tại phương pháp hay không, dẫn đến lỗi thường xuyên gây tử vong đối với lỗi chính tả đã đặt lại môi trường của bạn.
Có nhiều bản REPL của PHP, bao gồm cả trình tích hợp sẵn PHP (php -a
), điều này thật kinh khủng khi sử dụng.
Có ai biết thay thế hoặc có lẽ là một ngã ba phpsh có hỗ trợ không gian tên thích hợp không? Hoặc có lẽ một sửa chữa dễ dàng cấu hình tôi đã bỏ qua ...
một ví dụ:
testfile này:
<?
namespace testing;
function echoSome(){
echo 'Something';
}
\testing\echoSome();
sản xuất sản lượng này trong phpsh (như mong đợi)
php> include '/path/test.php';
Something
php>
Nhưng việc thử lại một lần nữa không hoạt động:
php> \testing\echoSome();
Not executing input: Possible call to undefined function echoSome()
See /etc/phpsh/config.sample to disable UndefinedFunctionCheck.
không gian tên chức năng vẫn còn có sẵn:
<?
function echoSome(){
echo 'Something';
}
echoSome();
trong phpsh:
php> include '/path/test.php';
Something
và cuộc gọi vẫn hoạt động:
php> echoSome();
Something
Bạn có thể mô tả chi tiết hơn một chút về những gì bạn thấy thiếu trong hỗ trợ không gian tên của phpsh không? – Doa
Tôi sẽ thêm một đoạn nội dung tôi thấy khó hiểu, nhưng có thể @michiel cũng có thể làm rõ một số nội dung? – Nanne
Vâng, đây là một ví dụ hoàn hảo về ý tôi. Ngoài \ someNameSpace \ someFunction(); someNamespace \ SomeClass :: someFunction() cũng không hoạt động. Iirc cũng có vấn đề với các chức năng ẩn danh (một tính năng 5.3 khác), nhưng bộ não bị thiếu chất caffein của tôi không thể nhớ được ngay bây giờ. – Marlies