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 common actions like user signup, sign-in, 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 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
- Test suite using PHPUnit with Travis CI hooks
Isosceles' source code is licensed under the GNU General Public License.
- Vagrant
- VirtualBox
vagrant plugin install vagrant-bindfs
Clone the repository:
$ git clone git@github.com:ginatrapani/isosceles.git
$ cd isosceles
Spin up virtual machine: (first run takes awhile)
$ vagrant up
There is no step 3.
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.
SSH in and run the tests
[host] $ vagrant ssh
[guest] $ cd /var/www/; sudo phpunit tests
Adminer database admin:
- http://192.168.56.101/adminer/
- isosceles / nice2bnice
MailCatcher
Destroy virtual machine:
$ vagrant destroy
Note: This does not delete setup files or the contents of the default directory.
If you vagrant destroy
then vagrant up
again and keep getting authentication failures, run:
$ rm puphpet/files/dot/ssh/id_rsa
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) in your web browser to regenerate.