Closed mpoiriert closed 11 years ago
Thank you for a detailed report!
There is one small mistake in the pointcut expression: execution(public *->*(*))
. This pointcut will match only classes at the global namespace, such as Test
or Another_Test
. If you want to intercept all public methods from different namespaces, then you should use double asterisk (_) for a class name part of pointcut: `execution(public ->(_))`.
It didn't fix the problem :(
What I do find weird is that the call in the intialization flow
class SourceTransformingLoader
{
// ... //
public function load($source)
{
return include FilterInjectorTransformer::rewrite($source);
}
}
Doesn't trigger the filter method call registered by the stream...
Please, could you add a 'debug' => true
into the kernel initialization. One more question: have you replaced autoload include in the bootstrap file with aspect autoload?
P.S. It would be nice to create a cache directory for a better experience and performance.
You can also try to use an empty value for the includePaths
option. This option works as a white list of directories where AOP should be applied, but if there is a mistake in the paths then AOP won't work at all.
Next version of framework (0.4.0) will have a transparent autoloading with composer, so configuration will be easier. BTW, which version of framework do you use?
I've put the debug => true I add a cache directory I removed the includePaths value I use it with composer so probably the last version: "lisachenko/go-aop-php": "*"
The problem is probably due to the appLoader
'appLoader' => __DIR__ . '/../vendor/autoload.php',
This is pointing on the autoload in the vendor directory of composer.
If I'm not putting anything in this configuration I get
Warning: include(php://filter/read=go.source.transforming.loader/resource=D:\nucleus\nucleus\web): failed to open stream: operation failed in D:\nucleus\nucleus\vendor\lisachenko\go-aop-php\src\Go\Instrument\ClassLoading\SourceTransformingLoader.php on line 146
And then it crash because class cannot be found (no autoload have been registered)
So, it looks like the path to composer vendor/autoload.php
is incorrect so kernel can not load it correctly. Just try to look at var_dump(realpath(__DIR__ . '/../vendor/autoload.php'));
This shouldn't be false.
The path is good
with this the class are loaded but no aspect.
'appLoader' => realpath(__DIR__ . '/../vendor/autoload.php'),
Should the
return include FilterInjectorTransformer::rewrite($source);
Trigger the filter method ? In my case it doesn't... but the file gets loaded
could one of the previous registered stream filter stop the chain and it never reach go.source.transforming.loader ?
0 => string 'convert.iconv._' (length=15) 1 => string 'string.rot13' (length=12) 2 => string 'string.toupper' (length=14) 3 => string 'string.tolower' (length=14) 4 => string 'string.striptags' (length=17) 5 => string 'convert.' (length=9) 6 => string 'consumed' (length=8) 7 => string 'dechunk' (length=7) 8 => string 'zlib.' (length=6) 9 => string 'bzip2.' (length=7) 10 => string 'mcrypt.' (length=8) 11 => string 'mdecrypt.' (length=10) 12 => string 'go.source.transforming.loader' (length=29)
Very strange ) Is there a file vendor/autoload.php
in the cache directory?
Previous stream filters can not affect the behavior of my filter, so include FilterInjectorTransformer::rewrite($source);
should trigger the filter. This can be checked with XDebug
Unfortunately, I haven't time now to help you with issue today, but i will look at this issue tomorrow.
Nothing in the cache directory.
The proble is really around the filter thing I'm sure.
I'll check on my side a bit more and let you know what I've found if I don't find a solution I'll wait for your help tomorrow...
Thanks !
I've use readfile with the same path and it did trigger the filter. Look's like it doesn't get trigger by the include instruction...
Haven't ideas about this behaviour... include and readfile() are using the same API in internals. Are there any special configurations for safety in PHP, Suhosin or opcode cachers? What is the version of PHP?
Additional traces for warnings and fatals can help me to understand the reason for this issue. Please, attach them to this topic. Thanks!
Finally. Removing the debug and keeping a cache directory made everything work.
From what I understand this code will create the file in the cache and the file_get_contents will create the proper file the first time.
if (!file_exists($newResource)) {
file_get_contents(self::PHP_FILTER_READ . self::$filterName . "/resource=" . $resource);
}
Than since the file is there everything is working.
A rewriting of the flow may be needed to fix that... Since I cannot put the debug on I need to empty the generated folder directory if I'm working on something that can impact aspects...
I don't get any error if I'm putting the debug to on and the cache folder, but nothing is appening..
Here's my PHPInfo
phpinfo() PHP Version => 5.4.11
System => Windows NT MARTINP 6.2 build 9200 (Unknown Windows version Home Premium Edition) i586 Build Date => Feb 12 2013 14:07:24 Compiler => MSVC9 (Visual C++ 2008) Architecture => x86 Configure Command => cscript /nologo configure.js "--disable-phar" "--disable-ipv6" "--disable-zts" "--disable-bcmath" "--disable-calendar" "--disable-odbc" "--disable-tokenizer" "--without-wddx" "--enable-debug-pack" "--enable-cli-win32" "--enable-pdo" "--enable-xmlreader" "--enable-xmlwriter" "--enable-cgi" "--with-php-build" "--with-libxml" "--with-pdo-sqlite" "--with-openssl" "--with-sqlite3" Server API => Command Line Interface Virtual Directory Support => disabled Configuration File (php.ini) Path => C:\Windows Loaded Configuration File => D:\Zend\ZendServer\etc\php.ini Scan this dir for additional .ini files => (none) Additional .ini files parsed => (none) PHP API => 20100412 PHP Extension => 20100525 Zend Extension => 220100525 Zend Extension Build => API220100525,NTS,VC9 PHP Extension Build => API20100525,NTS,VC9 Debug Build => no Thread Safety => disabled Zend Signal Handling => disabled Zend Memory Manager => enabled Zend Multibyte Support => provided by mbstring IPv6 Support => disabled DTrace Support => disabled
Registered PHP Streams => https, ftps, php, file, glob, data, http, ftp, zip, compress.zlib, compress.bzip2, phar Registered Stream Socket Transports => tcp, udp, ssl, sslv3, sslv2, tls Registered Stream Filters => convert.iconv._, string.rot13, string.toupper, string.tolower, string.striptags, convert., consumed, dechunk, zlib., bzip2., mcrypt., mdecrypt.
This program makes use of the Zend Scripting Language Engine: Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies with Xdebug v2.2.2, Copyright (c) 2002-2013, by Derick Rethans with Zend Extension Manager v6.0.0, Copyright (c) 2003-2013, by Zend Technologies
Configuration
bcmath
BCMath support => enabled
Directive => Local Value => Master Value bcmath.scale => 0 => 0
bz2
BZip2 Support => Enabled Stream Wrapper support => compress.bzip2:// Stream Filter support => bzip2.decompress, bzip2.compress BZip2 Version => 1.0.6, 6-Sept-2010
calendar
Calendar support => enabled
com_dotnet
COM support => enabled DCOM support => disabled .Net support => enabled
Directive => Local Value => Master Value com.allow_dcom => 0 => 0 com.autoregister_casesensitive => 1 => 1 com.autoregister_typelib => 0 => 0 com.autoregister_verbose => 0 => 0 com.code_page => no value => no value com.typelib_file => no value => no value
Core
PHP Version => 5.4.11
Directive => Local Value => Master Value allow_url_fopen => On => On allow_url_include => Off => Off always_populate_raw_post_data => Off => Off arg_separator.input => & => & arg_separator.output => & => & asp_tags => Off => Off auto_append_file => no value => no value auto_globals_jit => On => On auto_prepend_file => no value => no value browscap => no value => no value default_charset => no value => no value default_mimetype => text/html => text/html disable_classes => no value => no value disable_functions => no value => no value display_errors => STDOUT => STDOUT display_startup_errors => On => On doc_root => no value => no value docref_ext => no value => no value docref_root => no value => no value enable_dl => Off => Off enable_post_data_reading => On => On error_append_string => no value => no value error_log => D:\Zend\ZendServer\logs\php.log => D:\Zend\ZendServer\logs\php.log error_prepend_string => no value => no value error_reporting => 32767 => 32767 exit_on_timeout => Off => Off expose_php => On => On extension_dir => D:\Zend\ZendServer\lib\phpext => D:\Zend\ZendServer\lib\phpext file_uploads => On => On highlight.comment => #FF8000 => #FF8000 highlight.default => #0000BB => #0000BB highlight.html => #000000 => #000000 highlight.keyword => #007700 => #007700 highlight.string => #DD0000 => #DD0000 html_errors => Off => Off ignore_repeated_errors => Off => Off ignore_repeated_source => Off => Off ignore_user_abort => Off => Off implicit_flush => On => On include_path => .;D:\pear\pear => .;D:\pear\pear log_errors => On => On log_errors_max_len => 1024 => 1024 mail.add_x_header => On => On mail.force_extra_parameters => no value => no value mail.log => no value => no value max_execution_time => 0 => 0 max_file_uploads => 20 => 20 max_input_nesting_level => 64 => 64 max_input_time => -1 => -1 max_input_vars => 1000 => 1000 memory_limit => 128M => 128M open_basedir => no value => no value output_buffering => 0 => 0 output_handler => no value => no value post_max_size => 100M => 100M precision => 14 => 14 realpath_cache_size => 256k => 256k realpath_cache_ttl => 120 => 120 register_argc_argv => On => On report_memleaks => On => On report_zend_debug => Off => Off request_order => GP => GP sendmail_from => no value => no value sendmail_path => no value => no value serialize_precision => 17 => 17 short_open_tag => On => On SMTP => localhost => localhost smtp_port => 25 => 25 sql.safe_mode => Off => Off track_errors => On => On unserialize_callback_func => no value => no value upload_max_filesize => 100M => 100M upload_tmp_dir => no value => no value user_dir => no value => no value user_ini.cache_ttl => 300 => 300 user_ini.filename => .user.ini => .user.ini variables_order => GPCS => GPCS windows.show_crt_warning => Off => Off xmlrpc_error_number => 0 => 0 xmlrpc_errors => Off => Off zend.detect_unicode => On => On zend.enable_gc => On => On zend.multibyte => Off => Off zend.script_encoding => no value => no value
ctype
ctype functions => enabled
curl
cURL support => enabled cURL Information => 7.25.0 Age => 3 Features AsynchDNS => Yes Debug => No GSS-Negotiate => No IDN => No IPv6 => No Largefile => Yes NTLM => Yes SPNEGO => No SSL => Yes SSPI => No krb4 => No libz => Yes CharConv => No Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, pop3s, rtsp, smtp, smtps, telnet, tftp Host => i386-pc-win32 SSL Version => OpenSSL/0.9.8x ZLib Version => 1.2.6
date
date/time support => enabled "Olson" Timezone Database Version => 2012.10 Timezone Database => internal Default timezone => America/Montreal
Directive => Local Value => Master Value date.default_latitude => 31.7667 => 31.7667 date.default_longitude => 35.2333 => 35.2333 date.sunrise_zenith => 90.583333 => 90.583333 date.sunset_zenith => 90.583333 => 90.583333 date.timezone => America/Montreal => America/Montreal
dom
DOM/XML => enabled DOM/XML API Version => 20031129 libxml Version => 2.7.8 HTML Support => enabled XPath Support => enabled XPointer Support => enabled Schema Support => enabled RelaxNG Support => enabled
ereg
Regex Library => Bundled library enabled
exif
EXIF Support => enabled EXIF Version => 1.4 $Id$ Supported EXIF Version => 0220 Supported filetypes => JPEG,TIFF
Directive => Local Value => Master Value exif.decode_jis_intel => JIS => JIS exif.decode_jis_motorola => JIS => JIS exif.decode_unicode_intel => UCS-2LE => UCS-2LE exif.decode_unicode_motorola => UCS-2BE => UCS-2BE exif.encode_jis => no value => no value exif.encode_unicode => ISO-8859-15 => ISO-8859-15
fileinfo
fileinfo support => enabled version => 1.0.5
filter
Input Validation and Filtering => enabled Revision => $Id: 2aa8dd57d9c0c655cd45e6e5872bb95fa5ad76cf $
Directive => Local Value => Master Value filter.default => unsafe_raw => unsafe_raw filter.default_flags => no value => no value
ftp
FTP support => enabled
gd
GD Support => enabled GD Version => bundled (2.0.34 compatible) FreeType Support => enabled FreeType Linkage => with freetype FreeType Version => 2.4.9 T1Lib Support => enabled GIF Read Support => enabled GIF Create Support => enabled JPEG Support => enabled libJPEG Version => 8 PNG Support => enabled libPNG Version => 1.2.49 WBMP Support => enabled XBM Support => enabled
Directive => Local Value => Master Value gd.jpeg_ignore_warning => 0 => 0
gettext
GetText Support => enabled
hash
hash support => enabled Hashing Engines => md2 md4 md5 sha1 sha224 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost adler32 crc32 crc32b fnv132 fnv164 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5
iconv
iconv support => enabled iconv implementation => "libiconv" iconv library version => 1.9
Directive => Local Value => Master Value iconv.input_encoding => ISO-8859-1 => ISO-8859-1 iconv.internal_encoding => ISO-8859-1 => ISO-8859-1 iconv.output_encoding => ISO-8859-1 => ISO-8859-1
imap
IMAP c-Client Version => 2007f SSL Support => enabled
intl
Internationalization support => enabled version => 1.1.0 ICU version => 4.4.2 ICU Data version => 4.4.2
Directive => Local Value => Master Value intl.default_locale => no value => no value intl.error_level => 0 => 0
json
json support => enabled json version => 1.2.1
ldap
LDAP Support => enabled RCS Version => $Id$ Total Links => 0/unlimited API Version => 3001 Vendor Name => OpenLDAP Vendor Version => 20319 SASL Support => Enabled
Directive => Local Value => Master Value ldap.max_links => Unlimited => Unlimited
libxml
libXML support => active libXML Compiled Version => 2.7.8 libXML Loaded Version => 20708 libXML streams => enabled
mbstring
Multibyte Support => enabled Multibyte string engine => libmbfl HTTP input encoding translation => disabled libmbfl version => 1.3.2
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
Multibyte (japanese) regex support => enabled Multibyte regex (oniguruma) version => 4.7.1
Directive => Local Value => Master Value mbstring.detect_order => no value => no value mbstring.encoding_translation => Off => Off mbstring.func_overload => 0 => 0 mbstring.http_input => pass => pass mbstring.http_output => pass => pass mbstring.http_output_conv_mimetypes => ^(text/|application/xhtml+xml) => ^(text/|application/xhtml+xml) mbstring.internal_encoding => no value => no value mbstring.language => neutral => neutral mbstring.strict_detection => Off => Off mbstring.substitute_character => no value => no value
mcrypt
mcrypt support => enabled mcrypt_filter support => enabled Version => 2.5.7 Api No => 20021217 Supported ciphers => cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes Supported modes => cbc cfb ctr ecb ncfb nofb ofb stream
Directive => Local Value => Master Value mcrypt.algorithms_dir => no value => no value mcrypt.modes_dir => no value => no value
mysql
MySQL Support => enabled Active Persistent Links => 0 Active Links => 0 Client API version => mysqlnd 5.0.10 - 20111026 - $Id: b0b3b15c693b7f6aeb3aa66b646fee339f175e39 $
Directive => Local Value => Master Value mysql.allow_local_infile => On => On mysql.allow_persistent => On => On mysql.connect_timeout => 60 => 60 mysql.default_host => no value => no value mysql.default_password => no value => no value mysql.default_port => no value => no value mysql.default_socket => no value => no value mysql.default_user => no value => no value mysql.max_links => Unlimited => Unlimited mysql.max_persistent => Unlimited => Unlimited mysql.trace_mode => Off => Off
mysqli
MysqlI Support => enabled Client API library version => mysqlnd 5.0.10 - 20111026 - $Id: b0b3b15c693b7f6aeb3aa66b646fee339f175e39 $ Active Persistent Links => 0 Inactive Persistent Links => 0 Active Links => 0
Directive => Local Value => Master Value mysqli.allow_local_infile => On => On mysqli.allow_persistent => On => On mysqli.default_host => no value => no value mysqli.default_port => 3306 => 3306 mysqli.default_pw => no value => no value mysqli.default_socket => no value => no value mysqli.default_user => no value => no value mysqli.max_links => Unlimited => Unlimited mysqli.max_persistent => Unlimited => Unlimited mysqli.reconnect => Off => Off
mysqlnd
mysqlnd => enabled Version => mysqlnd 5.0.10 - 20111026 - $Id: b0b3b15c693b7f6aeb3aa66b646fee339f175e39 $ Compression => supported SSL => supported Command buffer size => 4096 Read buffer size => 32768 Read timeout => 31536000 Collecting statistics => Yes Collecting memory statistics => Yes Tracing => n/a Loaded plugins => mysqlnd,example,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password API Extensions => mysql,mysqli,pdo_mysql
mysqlnd statistics =>
bytes_sent => 0
bytes_received => 0
packets_sent => 0
packets_received => 0
protocol_overhead_in => 0
protocol_overhead_out => 0
bytes_received_ok_packet => 0
bytes_received_eof_packet => 0
bytes_received_rset_header_packet => 0
bytes_received_rset_field_meta_packet => 0
bytes_received_rset_row_packet => 0
bytes_received_prepare_response_packet => 0
bytes_received_change_user_packet => 0
packets_sent_command => 0
packets_received_ok => 0
packets_received_eof => 0
packets_received_rset_header => 0
packets_received_rset_field_meta => 0
packets_received_rset_row => 0
packets_received_prepare_response => 0
packets_received_change_user => 0
result_set_queries => 0
non_result_set_queries => 0
no_index_used => 0
bad_index_used => 0
slow_queries => 0
buffered_sets => 0
unbuffered_sets => 0
ps_buffered_sets => 0
ps_unbuffered_sets => 0
flushed_normal_sets => 0
flushed_ps_sets => 0
ps_prepared_never_executed => 0
ps_prepared_once_executed => 0
rows_fetched_from_server_normal => 0
rows_fetched_from_server_ps => 0
rows_buffered_from_client_normal => 0
rows_buffered_from_client_ps => 0
rows_fetched_from_client_normal_buffered => 0
rows_fetched_from_client_normal_unbuffered => 0
rows_fetched_from_client_ps_buffered => 0
rows_fetched_from_client_ps_unbuffered => 0
rows_fetched_from_client_ps_cursor => 0
rows_affected_normal => 0
rows_affected_ps => 0
rows_skipped_normal => 0
rows_skipped_ps => 0
copy_on_write_saved => 0
copy_on_write_performed => 0
command_buffer_too_small => 0
connect_success => 0
connect_failure => 0
connection_reused => 0
reconnect => 0
pconnect_success => 0
active_connections => 0
active_persistent_connections => 0
explicit_close => 0
implicit_close => 0
disconnect_close => 0
in_middle_of_command_close => 0
explicit_free_result => 0
implicit_free_result => 0
explicit_stmt_close => 0
implicit_stmt_close => 0
mem_emalloc_count => 0
mem_emalloc_amount => 0
mem_ecalloc_count => 0
mem_ecalloc_amount => 0
mem_erealloc_count => 0
mem_erealloc_amount => 0
mem_efree_count => 0
mem_efree_amount => 0
mem_malloc_count => 0
mem_malloc_amount => 0
mem_calloc_count => 0
mem_calloc_amount => 0
mem_realloc_count => 0
mem_realloc_amount => 0
mem_free_count => 0
mem_free_amount => 0
mem_estrndup_count => 0
mem_strndup_count => 0
mem_estndup_count => 0
mem_strdup_count => 0
proto_text_fetched_null => 0
proto_text_fetched_bit => 0
proto_text_fetched_tinyint => 0
proto_text_fetched_short => 0
proto_text_fetched_int24 => 0
proto_text_fetched_int => 0
proto_text_fetched_bigint => 0
proto_text_fetched_decimal => 0
proto_text_fetched_float => 0
proto_text_fetched_double => 0
proto_text_fetched_date => 0
proto_text_fetched_year => 0
proto_text_fetched_time => 0
proto_text_fetched_datetime => 0
proto_text_fetched_timestamp => 0
proto_text_fetched_string => 0
proto_text_fetched_blob => 0
proto_text_fetched_enum => 0
proto_text_fetched_set => 0
proto_text_fetched_geometry => 0
proto_text_fetched_other => 0
proto_binary_fetched_null => 0
proto_binary_fetched_bit => 0
proto_binary_fetched_tinyint => 0
proto_binary_fetched_short => 0
proto_binary_fetched_int24 => 0
proto_binary_fetched_int => 0
proto_binary_fetched_bigint => 0
proto_binary_fetched_decimal => 0
proto_binary_fetched_float => 0
proto_binary_fetched_double => 0
proto_binary_fetched_date => 0
proto_binary_fetched_year => 0
proto_binary_fetched_time => 0
proto_binary_fetched_datetime => 0
proto_binary_fetched_timestamp => 0
proto_binary_fetched_string => 0
proto_binary_fetched_blob => 0
proto_binary_fetched_enum => 0
proto_binary_fetched_set => 0
proto_binary_fetched_geometry => 0
proto_binary_fetched_other => 0
init_command_executed_count => 0
init_command_failed_count => 0
com_quit => 0
com_init_db => 0
com_query => 0
com_field_list => 0
com_create_db => 0
com_drop_db => 0
com_refresh => 0
com_shutdown => 0
com_statistics => 0
com_process_info => 0
com_connect => 0
com_process_kill => 0
com_debug => 0
com_ping => 0
com_time => 0
com_delayed_insert => 0
com_change_user => 0
com_binlog_dump => 0
com_table_dump => 0
com_connect_out => 0
com_register_slave => 0
com_stmt_prepare => 0
com_stmt_execute => 0
com_stmt_send_long_data => 0
com_stmt_close => 0
com_stmt_reset => 0
com_stmt_set_option => 0
com_stmt_fetch => 0
com_deamon => 0
bytes_received_real_data_normal => 0
bytes_received_real_data_ps => 0
example statistics =>
stat1 => 0
stat2 => 0
openssl
OpenSSL support => enabled OpenSSL Library Version => OpenSSL 0.9.8x 10 May 2012 OpenSSL Header Version => OpenSSL 0.9.8x 10 May 2012
pcre
PCRE (Perl Compatible Regular Expressions) Support => enabled PCRE Library Version => 8.31 2012-07-06
Directive => Local Value => Master Value pcre.backtrack_limit => 1000000 => 1000000 pcre.recursion_limit => 100000 => 100000
PDO
PDO support => enabled PDO drivers => sqlite, mysql, pgsql
pdo_mysql
PDO Driver for MySQL => enabled Client API version => mysqlnd 5.0.10 - 20111026 - $Id: b0b3b15c693b7f6aeb3aa66b646fee339f175e39 $
pdo_pgsql
PDO Driver for PostgreSQL => enabled PostgreSQL(libpq) Version => 8.3.18 Module version => 1.0.2 Revision => $Id$
pdo_sqlite
PDO Driver for SQLite 3.x => enabled SQLite Library => 3.7.7.1
pgsql
PostgreSQL Support => enabled PostgreSQL(libpq) Version => 8.3.18 PostgreSQL(libpq) => Uninitialized version string (win32) Multibyte character support => enabled SSL support => disabled Active Persistent Links => 0 Active Links => 0
Directive => Local Value => Master Value pgsql.allow_persistent => On => On pgsql.auto_reset_persistent => Off => Off pgsql.ignore_notice => Off => Off pgsql.log_notice => Off => Off pgsql.max_links => Unlimited => Unlimited pgsql.max_persistent => Unlimited => Unlimited
Phar
Phar: PHP Archive support => enabled Phar EXT version => 2.0.1 Phar API version => 1.1.1 SVN revision => $Id: cc7eac717db60fe3deade794d4ae082fe97279ed $ Phar-based phar archives => enabled Tar-based phar archives => enabled ZIP-based phar archives => enabled gzip compression => enabled bzip2 compression => enabled OpenSSL support => enabled
Phar based on pear/PHP_Archive, original concept by Davey Shafik. Phar fully realized by Gregory Beaver and Marcus Boerger. Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle. Directive => Local Value => Master Value phar.cache_list => no value => no value phar.readonly => On => On phar.require_hash => On => On
Reflection
Reflection => enabled Version => $Id: 25ecbad68e5a4573ffee43ea24a0591ea179492a $
session
Session Support => enabled Registered save handlers => files user Registered serializer handlers => php php_binary
Directive => Local Value => Master Value session.auto_start => Off => Off session.cache_expire => 180 => 180 session.cache_limiter => nocache => nocache session.cookie_domain => no value => no value session.cookie_httponly => Off => Off session.cookie_lifetime => 0 => 0 session.cookie_path => / => / session.cookie_secure => Off => Off session.entropy_file => no value => no value session.entropy_length => 0 => 0 session.gc_divisor => 1000 => 1000 session.gc_maxlifetime => 1440 => 1440 session.gc_probability => 1 => 1 session.hash_bits_per_character => 5 => 5 session.hash_function => 0 => 0 session.name => PHPSESSID => PHPSESSID session.referer_check => no value => no value session.save_handler => files => files session.save_path => D:\Zend\ZendServer\tmp => D:\Zend\ZendServer\tmp session.serialize_handler => php => php session.upload_progress.cleanup => On => On session.upload_progress.enabled => On => On session.upload_progress.freq => 1% => 1% session.upload_progress.min_freq => 1 => 1 session.upload_progress.name => PHP_SESSION_UPLOAD_PROGRESS => PHP_SESSION_UPLOAD_PROGRESS session.upload_progress.prefix => uploadprogress => uploadprogress session.use_cookies => On => On session.use_only_cookies => On => On session.use_trans_sid => 0 => 0
SimpleXML
Simplexml support => enabled Revision => $Id: 692516840b2d7d6e7aedb0bedded1f53b764a99f $ Schema support => enabled
soap
Soap Client => enabled Soap Server => enabled
Directive => Local Value => Master Value soap.wsdl_cache => 1 => 1 soap.wsdl_cache_dir => D:\Zend\ZendServer\tmp => D:\Zend\ZendServer\tmp soap.wsdl_cache_enabled => 1 => 1 soap.wsdl_cache_limit => 5 => 5 soap.wsdl_cache_ttl => 86400 => 86400
sockets
Sockets Support => enabled
SPL
SPL support => enabled Interfaces => Countable, OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject Classes => AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException
sqlite3
SQLite3 support => enabled SQLite3 module version => 0.7 SQLite Library => 3.7.7.1
Directive => Local Value => Master Value sqlite3.extension_dir => no value => no value
standard
Dynamic Library Support => enabled Internal Sendmail Support for Windows => enabled
Directive => Local Value => Master Value assert.active => 1 => 1 assert.bail => 0 => 0 assert.callback => no value => no value assert.quiet_eval => 0 => 0 assert.warning => 1 => 1 auto_detect_line_endings => 0 => 0 default_socket_timeout => 60 => 60 from => no value => no value url_rewriter.tags => a=href,area=href,frame=src,input=src,form=fakeentry => a=href,area=href,frame=src,input=src,form=fakeentry user_agent => no value => no value
tidy
Tidy support => enabled libTidy Release => 1st August 2004 Extension Version => 2.0 ($Id$)
Directive => Local Value => Master Value tidy.clean_output => no value => no value tidy.default_config => no value => no value
tokenizer
Tokenizer Support => enabled
win32service
Win32 Service support => enabled Version => 0.1.0-dev
xdebug
xdebug support => enabled Version => 2.2.2 IDE Key => Martin
Supported protocols => Revision DBGp - Common DeBuGger Protocol => $Revision: 1.145 $
Directive => Local Value => Master Value xdebug.auto_trace => Off => Off xdebug.cli_color => 0 => 0 xdebug.collect_assignments => Off => Off xdebug.collect_includes => On => On xdebug.collect_params => 0 => 0 xdebug.collect_return => Off => Off xdebug.collect_vars => Off => Off xdebug.coverage_enable => On => On xdebug.default_enable => On => On xdebug.dump.COOKIE => no value => no value xdebug.dump.ENV => no value => no value xdebug.dump.FILES => no value => no value xdebug.dump.GET => no value => no value xdebug.dump.POST => no value => no value xdebug.dump.REQUEST => no value => no value xdebug.dump.SERVER => no value => no value xdebug.dump.SESSION => no value => no value xdebug.dump_globals => On => On xdebug.dump_once => On => On xdebug.dump_undefined => Off => Off xdebug.extended_info => On => On xdebug.file_link_format => no value => no value xdebug.idekey => no value => no value xdebug.max_nesting_level => 100 => 100 xdebug.overload_var_dump => On => On xdebug.profiler_aggregate => Off => Off xdebug.profiler_append => Off => Off xdebug.profiler_enable => Off => Off xdebug.profiler_enable_trigger => Off => Off xdebug.profiler_output_dir => \ => \ xdebug.profiler_output_name => cachegrind.out.%p => cachegrind.out.%p xdebug.remote_autostart => Off => Off xdebug.remote_connect_back => Off => Off xdebug.remote_cookie_expire_time => 3600 => 3600 xdebug.remote_enable => Off => Off xdebug.remote_handler => dbgp => dbgp xdebug.remote_host => localhost => localhost xdebug.remote_log => no value => no value xdebug.remote_mode => req => req xdebug.remote_port => 9000 => 9000 xdebug.scream => Off => Off xdebug.show_exception_trace => Off => Off xdebug.show_local_vars => Off => Off xdebug.show_mem_delta => Off => Off xdebug.trace_enable_trigger => Off => Off xdebug.trace_format => 0 => 0 xdebug.trace_options => 0 => 0 xdebug.trace_output_dir => \ => \ xdebug.trace_output_name => trace.%c => trace.%c xdebug.var_display_max_children => 128 => 128 xdebug.var_display_max_data => 512 => 512 xdebug.var_display_max_depth => 3 => 3
xml
XML Support => active XML Namespace Support => active libxml2 Version => 2.7.8
xmlreader
XMLReader => enabled
xmlwriter
XMLWriter => enabled
xsl
XSL => enabled libxslt Version => 1.1.17 libxslt compiled against libxml Version => 2.6.26 EXSLT => enabled libexslt Version => 0.8.15
Zend Code Tracing
Zend Code Tracing => enabled
Directive => Local Value => Master Value zend_codetracing.always_dump => Off => Off zend_codetracing.buffer_size => 5M => 5M zend_codetracing.dump_file => codetracing/dump => codetracing/dump zend_codetracing.dump_format => 2 => 2 zend_codetracing.dump_on_segv => On => On zend_codetracing.enable => 1 => 1 zend_codetracing.log_file => codetracing.log => codetracing.log zend_codetracing.log_rotation_size => 10 => 10 zend_codetracing.log_verbosity => 0 => 0 zend_codetracing.max_concurrent_trace_buffers => 5 => 5 zend_codetracing.max_depth => 2 => 2 zend_codetracing.max_elements => 10 => 10 zend_codetracing.max_freq => 1 => 1 zend_codetracing.max_string => 48 => 48 zend_codetracing.override_functions => @D:\Zend\ZendServer\etc\functions.txt => @D:\Zend\ZendServer\etc\functions.txt zend_codetracing.trace_arguments => On => On zend_codetracing.trace_arrays => On => On zend_codetracing.trace_enable => Off => Off zend_codetracing.trace_errors => On => On zend_codetracing.trace_events => On => On zend_codetracing.trace_exceptions => On => On zend_codetracing.trace_headers => On => On zend_codetracing.trace_includes => On => On zend_codetracing.trace_internal_functions => On => On zend_codetracing.trace_memory_usage => On => On zend_codetracing.trace_return_values => On => On zend_codetracing.trace_source_lines => On => On zend_codetracing.trace_time => On => On zend_codetracing.trace_user_functions => On => On zend_codetracing.trace_write => On => On zend_codetracing.use_fast_timestamp => 1 => 1
Zend Data Cache
Version => 6.0.0 Enabled => No Shared Memory Storage Enabled => No Disk Storage Enabled => No Disk storage save path => D:\Zend\ZendServer\tmp\datacache Disk storage directory depth => 2 Shared memory storage cache size => 32
Zend Job Queue
Version => 6.0.0 Enable => Yes Default binding => tcp://127.0.0.1:10085 Log verbosity => 2
Zend Monitor
Version => 6.0.0 Enable => Yes Log verbosity => 2
Zend Monitor UI
Version => 6.0.0 Enable => No Log verbosity => 2
Zend Optimizer+
Opcode Caching => Disabled Optimization => Enabled Startup Failed => Opcode Caching is only supported in Apache, ISAPI and FastCGI SAPIs
Directive => Local Value => Master Value zend_optimizerplus.blacklist_filename => no value => no value zend_optimizerplus.consistency_checks => 0 => 0 zend_optimizerplus.dups_fix => Off => Off zend_optimizerplus.enable => On => On zend_optimizerplus.enable_file_override => Off => Off zend_optimizerplus.enable_slow_optimizations => 1 => 1 zend_optimizerplus.fast_shutdown => 0 => 0 zend_optimizerplus.force_restart_timeout => 180 => 180 zend_optimizerplus.inherited_hack => On => On zend_optimizerplus.interned_strings_buffer => 4 => 4 zend_optimizerplus.log_verbosity_level => 1 => 1 zend_optimizerplus.max_accelerated_files => 2000 => 2000 zend_optimizerplus.max_wasted_percentage => 5 => 5 zend_optimizerplus.memory_consumption => 64 => 64 zend_optimizerplus.mmap_base => no value => no value zend_optimizerplus.optimization_level => 0xfffffbbf => 0xfffffbbf zend_optimizerplus.preferred_memory_model => no value => no value zend_optimizerplus.revalidate_freq => 2 => 2 zend_optimizerplus.revalidate_path => Off => Off zend_optimizerplus.save_comments => 1 => 1 zend_optimizerplus.use_cwd => On => On zend_optimizerplus.validate_timestamps => On => On
Zend Page Cache
Version => 6.0.0
Enable => No
Cache dependencies file =>
Log verbosity level => 2
Disk storage directory structure depth => 2
Disk storage save path =>
Compression enable => 1
Cache cleaning frequency => 300
Zend Session Clustering
Clustering Session Module => Disabled Reason => Unsupported sapi
Zend Utils
zip
Zip => enabled Extension Version => $Id: 727cc853ca1ae15d995c3520c5719784ddc1e292 $ Zip version => 1.11.0 Libzip version => 0.10.1
zlib
ZLib Support => enabled Stream Wrapper => compress.zlib:// Stream Filter => zlib.inflate, zlib.deflate Compiled Version => 1.2.6 Linked Version => 1.2.6
Directive => Local Value => Master Value zlib.output_compression => Off => Off zlib.output_compression_level => -1 => -1 zlib.output_handler => no value => no value
Additional Modules
Module Name apc
Oh, you have so many Zend extensions ) Could you try to disable them and try one more time? Probably, you have an old version of ZendOptimizer+ that has a bug with stream includes. I had the same bug previously, but it was fixed. ZendOptimizer+ simply caches one version of file by path and doesn't pay an attention to the dynamic filters, so AOP doesn't work. And yes, for production mode my framework uses another technique for correct work with opcode cachers.
I've disabel all the zend extension and it does work. We are using apc in production (I think) from what I understand your framework is compatible with it ?
Everything seams fine now. Thanks :)
In production mode my framework is compatible with any opcode cachers, but for development mode it's better to use an APC or OPCache.
Have a nice experiments with AOP )
I'm trying to do a integration in a framework I'm bulding (Im using symfony HttpFoundation)
here is what I got so far
And a Aspect for testing
nothing is happening...
I check that the filter is properly registered using the stream_get_filters function;
And the path return by FilterInjectorTransformer::rewrite
The filter function of SourceTransformingLoader is never call, probably whe it doesn't work...
Is there something I don't do correctly ? Or maybe a comflict with other filter and it never reach th filter that is registered ?