wait

Tigermouse AJAX framework for PHP

Tigermouse - AJAX framework for PHP
login password or
search
english polski español français
about
news about publicity rss
demo
5 minutes tour live demo screencast demo other frameworks
getting started
faq download and installation quick start guide user documentation on-line help channel
getting involved
mailing lists developer documentation development guidelines upgrade assistant
the goal
Our goal is to develop high quality web applications framework for PHP and AJAX. We follow the best practices of software engineering to provide reliable, ready for changes and easily maintainable solution.
did you know?
Use TableGateway database access class to access table rows the way you access PHP arrays: $people[42] will return the row where primary key equals 42.
technology
PHP Smarty Sourceforge JSON AJAX Tigermouse

5 minutes tour

Sit back and relax. You are going to be presented brief overview of Tigermouse capabilities. Just keep scrolling down.

it's totally ajax

Simply every action taken by user is handled via AJAX, which dramaticaly improves application responsiveness and user experience. Take the AJAX advantage over traditional way of doing web software.

modern user interface foundation

User interface is built using Views and templates. Some Views have interesting functionalities commonly used in fat-client toolkits such as GTK#, PyGTK, Qt or SWT. What does it mean for you? You can do $window->open() on the web!

the easiest way to replace part of web page

Tigermouse offers you the easiest way of partial updating your DOM tree. No other framework has it done that easy: just return a View from controller to replace the one having the same id attribute. That's it!

no Javascript coding required

Yes, you can still write decent application without touching Javascript at all. No manual callback configuration. No searching for DOM element to replace. No fine print here. Of course, you are not forbidden to use custom Javascript any time.

server side to client side binding

All Controllers have their public methods exposed to client environment. Any method can be called any time using its string identifier. No explicit Controller method pre-registering is required!

client side to server side binding

Invoke a method on response object at server side and it will be transparently executed at client side as Javascript. It works for objects too, so $response->document->write('Hello world!') works as expected!

single entry point

All processing always starts in the same place - FrontController. Lightweight preliminary request processor and dispatcher. Can be attached with set of InterceptingFilters to perform request and response filtering such as access verification, logging, debugging etc.

powerful data abstraction layer

Tigermouse provides robust ActiveRecord implementation. What does it mean to you? No manual SQL handling when working with one-to-many and many-to-many relations. Of course, multiple database engines, access libraries and SQL dialects are handled gracefuly.

internationalization

I-eighteen-characters-N? Yes. Which flavour do you prefer? File based one or database backend? Or maybe you are willing to write your own? No problem here. Get your translation using __() (double underscore) function.

server side business processing

Thanks to being lightweight Tigermouse brings business processing back to server side, where it belongs. Your software is more reliable when you are in controll of what is happening. At client side, you simply do not controll the situation.

reliable AJAX transport layer

AJAX requests always go into queue before invoked. This prevents parallel or out-of-order execution. We have request cancelling on server or network timeout to prevent locking client environment. Our XHR object implementation is browser differences aware, naturally.

developer tools built in

Suffer from lack of good AJAX development support tools? Not with Tigermouse. It provides logging and benchmarking facility, on-demand Javascript line numbering, duplicate id hunter in DOM tree and excellent error reporting window. All very convenient.

class autoloader makes your code cleaner

You can use lightweight autoloader to include your classes on the fly. Just rebuild autoloader map using provided utility and use new operator without fighting unsatisfied dependencies to other classes.

overengineered?

Simply: no. Here in Tigermouse there is no single thing that cannot be replaced. Clean design and strong urge to remove all unneeded parts are key principles we take seriously.

don't hack the framework instead of application

Tigermouse is designed not to enforce you hacking it when you run into trouble. You are not going to be offended with any cryptic internal error messages and all Exception messages are human readable.

ready to run

No configuration is needed to run Tigermouse based application. Just download, give write permission to directories and start writing your own code. No command line code generators, no database configuration files.