<!-- PROJECT LOGO -->
<br />
<p style="text-align: center">
  <a href="https://git.hou.snaju.com/snaju-oss/inception-framework">
    <img src="https://snaju.com/public/img/snaju_symbol.png" alt="Logo" width="90" height="auto" />
  </a>
</p>

<h3 style="text-align: center">Snaju Inception Framework</h3>

<p style="text-align: center">
     A lightweight PHP based web framework built by Snaju Development!
    <br />
    <a href="https://docs.dev.snaju.com/inception"><strong>Explore the docs »</strong></a>
    <br />
    <br />
    <!--<a href="https://git.hou.snaju.com/snaju-oss/inception-framework">View Demo</a>
    ·-->
    <a href="https://git.hou.snaju.com/snaju-oss/inception-framework/issues">Report Bug</a>
    ·
    <a href="https://git.hou.snaju.com/snaju-oss/inception-framework/issues">Request Feature</a>
</p>



<!-- TABLE OF CONTENTS -->
<details>
  <summary>Table of Contents</summary>
  <ol>
    <li>
      <a href="#about-the-project">About The Project</a>
      <ul>
        <li><a href="#built-with">Built With</a></li>
      </ul>
    </li>
    <li>
      <a href="#getting-started">Getting Started</a>
      <ul>
        <li><a href="#prerequisites">Prerequisites</a></li>
        <li><a href="#installation">Installation</a></li>
      </ul>
    </li>
    <li><a href="#usage">Usage</a></li>
    <li><a href="#roadmap">Roadmap</a></li>
    <li><a href="#contributing">Contributing</a></li>
    <!--<li><a href="#license">License</a></li>-->
    <li><a href="#contact">Contact</a></li>
    <li><a href="#acknowledgements">Acknowledgements</a></li>
  </ol>
</details>



<!-- ABOUT THE PROJECT -->
## About The Project

[![Product Name Screen Shot][product-screenshot]](https://example.com)

// TODO

### Built With

This section should list any major frameworks that you built your project using. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.
* [Snaju Inception](https://packagist.org/packages/snaju/inception)



<!-- GETTING STARTED -->
## Getting Started

To get a local copy up and running follow these simple steps.

### Prerequisites

1. PHP `^7.4|^8.0`
2. NodeJS `^14.16`

### Installation

1. Clone the repo
   ```sh
   git clone https://git.hou.snaju.com/snaju-oss/inception-framework.git
   ```
3. Install node dependencies
   ```sh
   npm install
   ```
4. Install composer dependencies
   ```JS
   composer install
   ```
5. Move `.env-example` to `.env` and create database and update details
6. If using port for php server other than `8888`, update `gulpfile.js` line 29 with the proper port

<!-- USAGE EXAMPLES -->
## Usage

* For dev you can use one of the npm scripts. `npm run start` will start a dev server that injects js/css for live reloading and refreshes when templates are updated. Note: If using an IDE like PHPStorm, updates to file system are delayed which means the reload is not triggered until the IDE is unfocused.
  
* If using port for php server other than `8888`, update `gulpfile.js` line 29 with the proper port

// TODO

_For more examples, please refer to the [Documentation](https://example.com)_



<!-- ROADMAP -->
## Roadmap

- [X] File-based Routing System
- [X] Twig Rendering
- [X] Global & Route Middleware
- [X] Route Events (Start, Process, End, Fallback)
- [X] Basic Response Handling (view, json)
- [] Plugins
- [] Request Validators
- [] Exception Handling
- [] Auto API Adapters and Responses
- [X] Global Functions


See the [open issues](https://git.hou.snaju.com/snaju-oss/inception-framework/issues) for a list of proposed features (and known issues).



<!-- CONTRIBUTING -->
## Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request



[comment]: <> (<!-- LICENSE -->)

[comment]: <> (## License)

[comment]: <> (Distributed under the MIT License. See `LICENSE` for more information.)



<!-- CONTACT -->
## Contact

Snaju Development - [@snajullc](https://twitter.com/snajullc) - dev@snaju.com

Project Link: [https://git.hou.snaju.com/snaju-oss/inception-framework](https://git.hou.snaju.com/snaju-oss/inception-framework)



<!-- ACKNOWLEDGEMENTS -->
## Acknowledgements
* [PHP dotenv](https://github.com/vlucas/phpdotenv)
* [Doctrine ORM Quick Reference](http://ormcheatsheet.com)