Re: Re: hook cast_object handler in userspace

From: Date: Tue, 05 Aug 2003 02:02:27 +0000
Subject: Re: Re: hook cast_object handler in userspace
References: 1 2 3 4 5 6 7 8 9 10 11 12 13  Groups: php.internals 
Request: Send a blank email to internals+get-3723@lists.php.net to get a copy of this message
Hi Marcus, "Marcus BöRger" <marcus.boerger@t-online.de> escreveu na mensagem news:1374219017.20030804213452@post.rwth-aachen.de... > CD> I don't know how to throw an error/exception from inside the core of Zend2. > CD> I have some code to throw an exception/error from extensions... > > Simply set EG(exception) = class... > and experiment with the return value i don't know if it can be NULL or if it > must be a valid string in case of an exception gets thrown. The exception is caught but the script ends with a segmentation fault. So, looking at the spl extension I raise an error message instead. > CD> I modified the code to just call to_string if the object implements the > CD> "printable" interface. > CD> But I don't know how and where to register the interface in ZE2. Are there > CD> any interfaces registered inside ZE2? I cound't find any... > > an interface is a normal class but one which has only abstract methods and no > properties. So you can do the same as if you'd register an abstract class. But > when you're done you change the class flag to also contain ZEND_ACC_INTERFACE. I implemented the interface in zend_default_classes. Is it the right place for it? > CD> If you could point me some code to dig... > > cvs co -p ext/spl spl Thanx. And now my code runs ok. Can you check it up ? Cristiano Duarte begin 666 to_string.patch M/R!P:' M<W)C+UIE;F1%;F=I;F4Q"C\@<&AP+7-R8R]P:'!?=&5S=%]R97-U M;'1S7S(P,#,P.# S7S$V-3@N='AT"DEN9&5X.B!P:' M<W)C+UIE;F0O>F5N M9"YC"CT]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T] M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*4D-3(&9I;&4Z("]R97!O<VET M;W)Y+UIE;F1%;F=I;F4R+WIE;F0N8RQV"G)E=')I979I;F<@<F5V:7-I;VX@ M,2XR-#,*9&EF9B M=2 M<C$N,C0S('IE;F0N8PHM+2T@<&AP+7-R8R]:96YD M+WIE;F0N8PDS,"!*=6P@,C P,R Q-CHQ,SHU,B M,# P, DQ+C(T,PHK*RL@ M<&AP+7-R8R]:96YD+WIE;F0N8PDU($%U9R R,# S(# R.C Q.C W("TP,# P M"D! ("TR,C@L." K,C(X+#0W($! "B )"0D)5%-234Q37T9%5$-(*"D["B ) M"0D)97AP<BT^=F%L=64N;V)J+FAA;F1L97)S+3YC87-T7V]B:F5C="AE>'!R M+"!E>'!R7V-O<'DL($E37U-44DE.1RP@,"!44U)-3%-?0T,I.PH@"0D)?2!E M;'-E('L*+0D)"0EE>'!R7V-O<'DM/G9A;'5E+G-T<BYV86P@/2 H8VAA<B J M*2!E;6%L;&]C*'-I>F5O9B@B3V)J96-T(&ED(",B*2TQ("L@34%87TQ%3D=4 M2%]/1E],3TY'*3L*+0D)"0EE>'!R7V-O<'DM/G9A;'5E+G-T<BYL96X@/2!S M<')I;G1F*&5X<')?8V]P>2T^=F%L=64N<W1R+G9A;"P@(D]B:F5C="!I9" C M)6QD(BP@*&QO;F<I97AP<BT^=F%L=64N;V)J+FAA;F1L92D["BL)"0D):6YT M(&D@/2 M,3L**PD)"0E44U)-3%-?1D540T@H*3L**PD)"0EZ96YD7V-L87-S M7V5N=')Y("IC92 ](%I?3T)*0T5?4"AE>'!R*3L**PD)"0EI9B H8V4M/FYU M;5]I;G1E<F9A8V5S(#X@,"D@>PHK"0D)"0DO+VUU<W0@:6UP;&5M96YT("=P M<FEN=&%B;&4G(&9O<B!T;U]S=')I;F<@=&\@=V]R:PHK"0D)"0EF;W(@*&D] M,#L@:2 \(&-E+3YN=6U?:6YT97)F86-E<SL@*RMI*2!["BL)"0D)"0EI9B H M<W1R8VUP*&-E+3YI;G1E<F9A8V5S6VE=+3YN86UE+" B<')I;G1A8FQE(BD] M/3 I('L**PD)"0D)"0EB<F5A:SL**PD)"0D)"7T**PD)"0D)?0HK"BL)"0D) M?0HK"0D)"6EF("@H:2 ^/2 P*2 F)B H:2 \(&-E+3YN=6U?:6YT97)F86-E M<RDI('L**PD)"0D)+R]P<FEN=&%B;&4@:6YT97)F86-E(&9O=6YD"BL)"0D) M"7IV86P@*F9N86UE+" J<F5T=F%L.PHK"0D)"0E-04M%7U-41%]:5D%,*&9N M86UE*3L**PD)"0D)6E9!3%]35%))3D<H9FYA;64L(")T;U]S=')I;F<B+" Q M*3L**PD)"0D):68@*&-A;&Q?=7-E<E]F=6YC=&EO;E]E>"A.54Q,+" F97AP M<BP@9FYA;64L("9R971V86PL(# L($Y53$PL(# L($Y53$P@5%-234Q37T-# M*2 ]/2!354-#15-3*2!["BL)"0D)"0EI9B H6E]465!%7U H<F5T=F%L*2 A M/2!)4U]35%))3D<I('L**PD)"0D)"0DO+V5R<F]R.B!T;U]S=')I;F<@;75S M="!R971U<FX@82!S=')I;F<@=F%L=64**PD)"0D)"0DO*B!E>&-E<'1I;VYS M(&1O(&YO="!W;W)K('EE= HK"0D)"0D)"7!H<%]S971?97)R;W)?:&%N9&QI M;F<H14A?5$A23U<L('IE;F1?97AC97!T:6]N7V=E=%]D969A=6QT*"D@5%-2 M34Q37T-#*3LJ+PHK"0D)"0D)"7IE;F1?97)R;W(H15]%4E)/4BP@(E5N<W5P M<&]R=&5D(')E='5R;B!T>7!E(BD["BL)"0D)"0D)6E9!3%]35%))3D<H97AP M<E]C;W!Y+" B(T5R<F]R(BP@,2D["BL)"0D)"0E](&5L<V4@>PHK"0D)"0D) M"5I604Q?4U1224Y'3"AE>'!R7V-O<'DL(%I?4U125D%,7U H<F5T=F%L*2P@ M6E]35%),14Y?4"AR971V86PI+" Q*3L**PD)"0D)"7T**PD)"0D)"7IV86Q? M<'1R7V1T;W(H)G)E='9A;"D["BL)"0D)"7T@96QS92!["BL)"0D)"0DO+V5R M<F]R.B!F=6YC=&EO;B!C86QL(&5R<F]R("AS:&]U;&0@;F5V97(@:&%P<&5N M"BL)"0D)"0DO*B!E>&-E<'1I;VYS(&1O(&YO="!W;W)K('EE= HK"0D)"0D) M<&AP7W-E=%]E<G)O<E]H86YD;&EN9RA%2%]42%)/5RP@>F5N9%]E>&-E<'1I M;VY?9V5T7V1E9F%U;'0H*2!44U)-3%-?0T,I.RHO"BL)"0D)"0EZ96YD7V5R M<F]R*$5?15)23U(L(")T;U]S=')I;F<@;65T:&]D(&-A;&P@9F%I;'5R92(I M.PHK"0D)"0D)6E9!3%]35%))3D<H97AP<E]C;W!Y+" B(T5R<F]R(BP@,2D[ M"BL)"0D)"7T**PD)"0D)>G9A;%]P=')?9'1O<B@F9FYA;64I.PHK"0D)"7T@ M96QS92!["BL)"0D)"2\O('1H92!D969A=6QT7V)E:&%V:6]R"BL)"0D)"5I? M4U125D%,7U H97AP<E]C;W!Y*2 ]("AC:&%R("HI(&5M86QL;V,H<VEZ96]F M*")/8FIE8W0@:60@(R(I+3$@*R!-05A?3$5.1U1(7T]&7TQ/3D<I.PHK"0D) M"0E:7U-44DQ%3E]0*&5X<')?8V]P>2D@/2!S<')I;G1F*%I?4U125D%,7U H M97AP<E]C;W!Y*2P@(D]B:F5C="!I9" C)6QD(BP@*&QO;F<I6E]/0DI?2$%. M1$Q%7U H97AP<BDI.PHK"0D)"7T*( D)"7T*("-I9B P"B )"0DO*B!&25A- M13H@5&AI<R!M:6=H="!B<F5A:R!"0R!F;W(@<V]M92!P96]P;&4@*B\*26YD M97@Z('!H<"US<F,O6F5N9"]Z96YD7V1E9F%U;'1?8VQA<W-E<RYC"CT]/3T] M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T] M/3T]/3T]/3T]/3T]/3T]/3T*4D-3(&9I;&4Z("]R97!O<VET;W)Y+UIE;F1% M;F=I;F4R+WIE;F1?9&5F875L=%]C;&%S<V5S+F,L=@IR971R:65V:6YG(')E M=FES:6]N(#$N-@ID:69F("UU("UR,2XV('IE;F1?9&5F875L=%]C;&%S<V5S M+F,*+2TM('!H<"US<F,O6F5N9"]Z96YD7V1E9F%U;'1?8VQA<W-E<RYC"3,P M($IU;B R,# S(#(P.C S.C4V("TP,# P"3$N-@HK*RL@<&AP+7-R8R]:96YD M+WIE;F1?9&5F875L=%]C;&%S<V5S+F,)-2!!=6<@,C P,R P,CHP,3HP-R M M,# P, I 0" M,C,L-B K,C,L-R! 0 H@(VEN8VQU9&4@(GIE;F1?<F5F;&5C M=&EO;E]A<&DN:"(*( H@>F5N9%]C;&%S<U]E;G1R>2 J9&5F875L=%]E>&-E M<'1I;VY?<'1R.PHK>F5N9%]C;&%S<U]E;G1R>2 J<')I;G1A8FQE7VEN=&5R M9F%C95]P='(["B *(%I%3D1?1E5.0U1)3TXH97AC97!T:6]N*0H@>PI 0" M M,3$S+#8@*S$Q-"PQ,2! 0 H@"5I%3D1?1D4H9V5T;&EN92P@3E5,3"D*( E[ M3E5,3"P@3E5,3"P@3E5,3'T*('T["BM:14Y$7T953D-424].*'IE;F1?86)S M=')A8W0I('M]"BMS=&%T:6,@>F5N9%]F=6YC=&EO;E]E;G1R>2!P<FEN=&%B M;&5?:6YT97)F86-E7V9U;F-T:6]N<UM=(#T@>PHK"7L@(G1O7W-T<FEN9R(L M(%I%3D1?1DXH>F5N9%]A8G-T<F%C="DL($Y53$PL(# L(%I%3D1?04-#7T%" M4U1204-4('P@6D5.1%]!0T-?4%5"3$E#('TL"BL)>R!.54Q,+"!.54Q,+"!. M54Q,('T**WT["B *('-T871I8R!V;VED('IE;F1?<F5G:7-T97)?9&5F875L M=%]E>&-E<'1I;VXH5%-234Q37T0I"B!["D! ("TQ,C$L,34@*S$R-RPR-R! M0 H@"4E.251?0TQ!4U-?14Y44EDH9&5F875L=%]E>&-E<'1I;VXL(")E>&-E M<'1I;VXB+"!D969A=6QT7V5X8V5P=&EO;E]F=6YC=&EO;G,I.PH@"61E9F%U M;'1?97AC97!T:6]N7W!T<B ]('IE;F1?<F5G:7-T97)?:6YT97)N86Q?8VQA M<W,H)F1E9F%U;'1?97AC97!T:6]N(%134DU,4U]#0RD["B!]"BMS=&%T:6,@ M=F]I9"!Z96YD7W)E9VES=&5R7W!R:6YT86)L95]I;G1E<F9A8V4H5%-234Q3 M7T0I"BM["BL)>F5N9%]C;&%S<U]E;G1R>2!P<FEN=&%B;&5?:6YT97)F86-E M.PHK"4E.251?0TQ!4U-?14Y44EDH<')I;G1A8FQE7VEN=&5R9F%C92P@(G!R M:6YT86)L92(L('!R:6YT86)L95]I;G1E<F9A8V5?9G5N8W1I;VYS*3L**PEP M<FEN=&%B;&5?:6YT97)F86-E+FYA;65?;&5N9W1H(#T@<W1R;&5N*")P<FEN M=&%B;&4B*3L**PEP<FEN=&%B;&5?:6YT97)F86-E7W!T<B ]('IE;F1?<F5G M:7-T97)?:6YT97)N86Q?8VQA<W,H)G!R:6YT86)L95]I;G1E<F9A8V4@5%-2 M34Q37T-#*3L**PEP<FEN=&%B;&5?:6YT97)F86-E7W!T<BT^8V5?9FQA9W,@ M/2!:14Y$7T%#0U]!0E-44D%#5"!\(%I%3D1?04-#7TE.5$521D%#13L**WT* M( H@6D5.1%]!4$D@>F5N9%]C;&%S<U]E;G1R>2 J>F5N9%]E>&-E<'1I;VY? M9V5T7V1E9F%U;'0H=F]I9"D*('L*( ER971U<FX@9&5F875L=%]E>&-E<'1I M;VY?<'1R.PH@?0HM"BM:14Y$7T%022!Z96YD7V-L87-S7V5N=')Y("IZ96YD M7VEN=&5R9F%C95]G971?<')I;G1A8FQE*'9O:60I"BM["BL)<F5T=7)N('!R M:6YT86)L95]I;G1E<F9A8V5?<'1R.PHK?0H@6D5.1%]!4$D@=F]I9"!Z96YD M7W)E9VES=&5R7V1E9F%U;'1?8VQA<W-E<RA44U)-3%-?1"D*('L*( EZ96YD M7W)E9VES=&5R7V1E9F%U;'1?97AC97!T:6]N*%134DU,4U]#*3L**PEZ96YD M7W)E9VES=&5R7W!R:6YT86)L95]I;G1E<F9A8V4H5%-234Q37T,I.PH@"7IE M;F1?<F5G:7-T97)?<F5F;&5C=&EO;E]A<&DH5%-234Q37T,I.PH@?0H@"DEN M9&5X.B!P:' M<W)C+UIE;F0O>F5N9%]D969A=6QT7V-L87-S97,N: H]/3T] M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T] M/3T]/3T]/3T]/3T]/3T]/3T]"E)#4R!F:6QE.B O<F5P;W-I=&]R>2]:96YD M16YG:6YE,B]Z96YD7V1E9F%U;'1?8VQA<W-E<RYH+'8*<F5T<FEE=FEN9R!R M979I<VEO;B Q+C4*9&EF9B M=2 M<C$N-2!Z96YD7V1E9F%U;'1?8VQA<W-E M<RYH"BTM+2!P:' M<W)C+UIE;F0O>F5N9%]D969A=6QT7V-L87-S97,N: DQ M,"!*=6X@,C P,R R,#HP,SHR-" M,# P, DQ+C4**RLK('!H<"US<F,O6F5N M9"]Z96YD7V1E9F%U;'1?8VQA<W-E<RYH"34@075G(#(P,#,@,#(Z,#$Z,#<@ M+3 P,# *0$ @+3(T+#8@*S(T+#<@0$ *($)%1TE.7T585$523E]#*"D*( H@ M6D5.1%]!4$D@>F5N9%]C;&%S<U]E;G1R>2 J>F5N9%]E>&-E<'1I;VY?9V5T M7V1E9F%U;'0H=F]I9"D["BM:14Y$7T%022!Z96YD7V-L87-S7V5N=')Y("IZ M96YD7VEN=&5R9F%C95]G971?<')I;G1A8FQE*'9O:60I.PH@6D5.1%]!4$D@ M=F]I9"!Z96YD7W)E9VES=&5R7V1E9F%U;'1?8VQA<W-E<RA44U)-3%-?1"D[ 4"B )"B!%3D1?15A415).7T,H*0H` ` end

« previous php.internals (#3723) next »