Isosceles is an object-oriented, PHP5 web application starter kit based on ThinkUp's underpinnings. Isosceles provides a simple MVC framework, database agnosticism, caching, dynamic class loading, single-file configuration, URL routing and (eventually) common actions like user registration, login, and logging.
Isosceles' name refers to the architecture of New York City's One World Trade Center.
Isosceles is the PHP framework that runs ThinkUp, extracted and abstracted for reuse. It is nowhere near done. Its current feature set includes:
- Model View Controller framework, using Smarty and Bootstrap for the view
- Data Access Object-based data layer using PDO
- Dynamic configuration through single config file
- Caching to disk (via Smarty)
- URL routing
- A simple database query profiler
- Testing framework (using SimpleTest) with Travis CI hooks
Isosceles is in beta and incomplete. In future releases it will get more features which demonstrate its use, like user registration, login, application settings, and logging.
Isosceles' source code is licensed under the GNU General Public License, except for the external libraries listed below.
The following libraries are included in Isosceles:
- Vagrant
- VirtualBox
vagrant plugin install vagrant-bindfs
Clone the repository:
$ git clone git@github.com:ginatrapani/isosceles.git
Get required submodules:
$ cd isosceles; git submodule init; git submodule update --recursive
Spin up virtual machine: (first run takes awhile)
$ vagrant up
All done? Congratulations!
SSH in and run the tests
[host] $ vagrant ssh
[guest] $ cd /var/www/; sudo php tests/all_tests.php
See Isosceles example web app in your browser:
Note: If isosceles.dev doesn't resolve, make sure the following line is in your host computer's /etc/hosts file:
192.168.56.101 default isosceles.dev www.isosceles.dev
Use the code editor and git client of your choice on your host machine. Edit files in the isosceles directory.
Adminer database admin:
- http://192.168.56.101/adminer/
- isosceles / nice2bnice
MailCatcher
SSH in:
$ vagrant ssh
Destroy virtual machine:
$ vagrant destroy
Note: This does not delete setup files or the contents of the default directory.
This Vagrant virtual machine was built with PuPHPet. To modify it for your own purposes, drag and drop puphpet/config.yaml onto (http://puphpet.com) and regenerate.