Hey Reema,

No your not missing anything, what happens is that through something called 'mod_rewrite', all the URL's are redirected to /index.php, which then maps the request URL to an class.

You can find the url rewriting rules in the shindig/php/.htaccess file:
<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule (.*) index.php [L]
</IfModule>

And the url => class mapping in index.php:
$servletMap = array(
Config::get('web_prefix') . '/gadgets/files' => 'FilesServlet', Config::get('web_prefix') . '/gadgets/js' => 'JsServlet', Config::get('web_prefix') . '/gadgets/proxy' => 'ProxyServlet', Config::get('web_prefix') . '/gadgets/makeRequest' => 'ProxyServlet', Config::get('web_prefix') . '/gadgets/ifr' => 'GadgetRenderingServlet', Config::get('web_prefix') . '/gadgets/metadata' => 'JsonRpcServlet', Config::get('web_prefix') . '/social/rest' => 'RestServlet', Config::get('web_prefix') . '/public.crt' => 'CertServlet'
                );

So if you'd hit /gadgets/ifr?url=<gadget url>, then that request gets redirected to /index.php, which then loads the GadgetRenderingServlet class (which is located in shindig/php/src/gadgets/http/ GadgetRenderingServlet.php) and then executes it.

It's a pretty standard way of doing 'pretty URL' mapping in PHP, so nothing special really :-)

Hope that clears things up!

        -- Chris

On Aug 3, 2008, at 7:40 AM, Reema Sardana wrote:

Hi,

I just build the Shindig PHP Server. From the instructions and the
README at http://incubator.apache.org/shindig/#php, I see that I
should expect a directory called 'gadgets' under shindig/php/ but I do
not see 'gadgets' in

http://svn.apache.org/repos/asf/incubator/shindig/trunk/php/

Am I missing something?

Thanks,
- Reema

Reply via email to