<div dir="ltr">1) What you described, about Handle being abstract, that is another file. That file is under framework/_core/base/control.php<div>I am talking about another file, <b style="font-size:12.800000190734863px;font-family:arial,sans-serif">framework/control/default.php, </b><span style="font-size:12.800000190734863px;font-family:arial,sans-serif">which is a subclass of the above file and has defined the Handle method. So my question was that in that Handle method, the definition is running the scanner class to scan itself. I cannot understand why it is doing that ?</span></div>
<div><span style="font-size:12.800000190734863px;font-family:arial,sans-serif"><br></span></div><div><span style="font-size:12.800000190734863px;font-family:arial,sans-serif">2) I will better understand with an example. So lets say that MatchRoutes matches the wildcard "*". Now that means that the controller selected is the "default" controller, and it is the same file as above - </span><b style="font-size:12.800000190734863px;font-family:arial,sans-serif">framework/control/default.php. </b><span style="font-size:12.800000190734863px;font-family:arial,sans-serif">Now in this file, I cannot see any class names, so what will the "GetClasses" method will find in this class ??</span></div>
<div><span style="font-size:12.800000190734863px;font-family:arial,sans-serif"><br></span></div><div><font face="arial, sans-serif">After this I know. Once the classes will be found, appropriate controllers are fetched and loaded and the start method is called. I just have doubt on the "default" controller because it does not contains any class names.</font></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Sep 8, 2013 at 9:52 AM, Abbas Naderi <span dir="ltr"><<a href="mailto:abiusx@owasp.org" target="_blank">abiusx@owasp.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Hey Rahul,</div>1.<div>What do you mean?</div><div>Default controller (aka catch controller) is meant to catch a bunch of requests, not just one. That is why the Start method is overridden and the Handle method is abstract, which also gets the part of the requests that is mapped to the controller.</div>
<div><br></div><div>Whatever an app puts in the controller code, is application specific and everything we did already is just for demonstration and testing.</div><div><br></div><div>2. </div><div>We first need to see which file is needed to start the controller, that is done by MatchRoutes. jframework has strict routes, meaning that request <b>do/something</b> will be mapped to <b>control/do/something.php</b> which might not be convenient for some, many frameworks have the concept of routes, allowing the developer to map between requests and controllers</div>
<div><br></div><div>Now that we have the controller file, we need to know what the controller class is called, so that we can instantiate it and call its start method! Thats why we run GetClasses and see whcih class in there is an instance of base controller, then instantiate and call it.</div>
<div><br></div><div>3. </div><div>It's called a catch controller, in _japp/model/base/control/catch.php</div><div><br></div><div>-Abbas<br><div>
<span style="border-spacing:0px;text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<span style="border-spacing:0px;text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<span style="border-spacing:0px;text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<span style="border-spacing:0px;text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<span style="border-spacing:0px;text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<span style="border-spacing:0px;text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<span style="border-spacing:0px;text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<span style="border-spacing:0px;text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<span style="border-spacing:0px;text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<span style="border-spacing:0px;text-indent:0px;letter-spacing:normal;font-variant:normal;text-align:-webkit-auto;font-style:normal;line-height:normal;border-collapse:separate;text-transform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-spacing:0px"><div style="word-wrap:break-word">
<div style="font-weight:normal"><div>______________________________________________________________</div><div><b>Notice:</b><b> </b>This message is <b>digitally signed</b>, its <b>source</b> and <b>integrity</b> are verifiable.</div>
<div>If you mail client does not support S/MIME verification, it will display a file (smime.p7s), which includes the X.509 certificate and the signature body.  Read more at <a href="http://abiusx.com/certified-e-mail-with-comodo-and-thunderbird/" target="_blank">Certified E-Mail with Comodo and Thunderbird</a> in <a href="http://AbiusX.com" target="_blank">AbiusX.com</a></div>
</div></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span></div></span>
</div>
<br><div><div><div class="h5"><div>On Sep 8, 2013, at 2:19 AM, rahul chaudhary <<a href="mailto:rahul300chaudhary400@gmail.com" target="_blank">rahul300chaudhary400@gmail.com</a>> wrote:</div><br></div></div><blockquote type="cite">
<div><div class="h5"><div dir="ltr">Hello,<div><br></div><div><b>1) The default controller class inside framework/control/default.php</b><br></div><div>I cannot understand why the Handle method contains code to scan itself.</div>
<div><br></div>
<div><b>2) The front controller inside framework/_core/front.php</b></div><div>In this file as I understand, first the method "MatchRoutes" will run and depending on the route, it will load the controller file. So lets suppose that it loads framework/control/default.php</div>

<div><br></div><div>After this, the "StartController" function will run. In this function, I see that first the "GetClasses" method is run on "framework/control/default.php" which finds classes inside this file. However seeing the contents of this file, I cannot find any class names. So, how is this working ??</div>

<div><br></div><div>Also my perception was first that after "MatchRoutes", we get the controller. But then again in "StartController" I see that after getting class names, it again searches for the appropriate controller.</div>

<div><br></div><div>So, what is the difference between finding controller in "MatchRoutes" and finding controller in "StartController"</div><div><div><br></div><div><br></div><div><b>3) Also can you please tell me the default controller location in jFramework ??</b></div>

<div><br></div>-- <br><div>Regards,</div><div>Rahul Chaudhary</div><div>Ph - <a href="tel:412-519-9634" value="+14125199634" target="_blank">412-519-9634</a></div>
</div></div></div></div>
_______________________________________________<br>OWASP_PHP_Security_Project mailing list<br><a href="mailto:OWASP_PHP_Security_Project@lists.owasp.org" target="_blank">OWASP_PHP_Security_Project@lists.owasp.org</a><br>
<a href="https://lists.owasp.org/mailman/listinfo/owasp_php_security_project" target="_blank">https://lists.owasp.org/mailman/listinfo/owasp_php_security_project</a><br></blockquote></div><br></div></div></blockquote></div>
<br><br clear="all"><div><br></div>-- <br><div>Regards,</div><div>Rahul Chaudhary</div><div>Ph - 412-519-9634</div>
</div>