# Ubiquity Php framework. Very first look at #Ubiquity

# [Ubiquity](https://ubiquity.kobject.net/) is a web application framework, inspired and respectful of php's logic.
In my free time I usually scroll into my github app and check recent project and tools related development. just see which repository is coming to my feed and if I feel any project looked interesting then I try it in my development environment.

Today I was scrolling and found Ubiquity php framework. it is a php rapid development framework. Very easy to setup and first look into the project only few command. 
```
composer create-project phpmv/ubiquity-project firstProject
cd firstProject
vendor/bin/Ubiquity serve
``` 
Then go to your browser and type http://127.0.0.1:8090/ and you  can check its default page and this page load really really fast. and it also have an admin section built in http://127.0.0.1:8090/Admin

So far I see its awesome and its very quick view of it. But I wish to create a real project with this framework soon.

Ubiquity is a web application framework, inspired and respectful of php's logic. Here are some features those are listed in their website but I believe there are lot of other things there too.

- ## MVC design pattern
Ubiquity implements MVC2 design pattern.
The directory structure makes it easy to separate views, models and controllers.
- ## Pretty URLs
Ubiquity uses pretty URLs, built from the principle controller/action/{parameters...}.
It is also possible to use the @route annotation or Route attribute.
- ## Datas
Models are Plain Old PHP Objects, only with members and accessors to them.
Object relational mapping relies on member annotations or attributes.
A Data Access Layer (DAO class) performs bidirectional transfer of data between the relational database and the domain layer (models).
- ## Views
Views are loaded from the controller, in a classic way.
The controller optionally pass them the data. 
[Twig](http://twig.symfony.com/) is the default template engine.
- ## Classes autoloading
Ubiquity use PSR-4 composer autoloader.
The root namespace of a project is anchored in the app/ folder.
- ## Access control
Access control to a controller can be performed using the isValid and onInvalidControl methods.

default index page
![127.0.0.1_8090_.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1645639876408/WIxkjuoqi.png)

admin panel

![127.0.0.1_8090_Admin_index.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1645639915511/T-iub44rb.png)

Useful link
[github](https://github.com/phpMv/ubiquity)
[Youtube channel](https://www.youtube.com/channel/UCSn_VzC0QpXCHmGDrw-_REw)
[Guide](https://micro-framework.readthedocs.io/en/latest/?badge=latest)
[Question](https://gitter.im/ubiquity-framework/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

Thanks for your time and reading.
