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