System - PHP Framework
Solves common Webdevelopment Problems and presents a Solution to several reapearing problems in a good ecapsulated modern way.
PHP 5.6+
Mysql (Postgressql (deprecated))
Apache (only htaccess is provided)
Graphviz (for phpdocumentor)
System is not a standalone Software, it is used within php Projects. If you are not familiar with SYSTEM, please checkout the demo project git@github.com:webcraftmedia/demo_basic.git and follow instructions there.
SYSTEM offers diferent Features - a few are described in this readme
Seperation by Language, Seperation by Access, Seperation by Meaning. System ecapsulates the following languages in different Files:
- PHP
- SQL
- JS
- HTML
- CSS
Depending on how you access the Page you are redirectd to diferent Endpoints of your Project. System distiquishes between
- index.php - serve webpages
- api.php - returns json results, ajax-calls normally go to this endpoint
- sai.php - serves a secure extendable environment to administer your Page
The Autoload-Feature which is used within System allows you to seperate your Project further into several subfolders - normally one for every single page you serve.
Url parameter mapping to php classes in a modern way. Calls to your Page or API are directly mapped to a class of your choice, serving the diferent calls you implement.
Cache any data you want to cache. Typical things cached are Javascript and CSS. By default the cache is cleaned once a day via internal cronjob mechanism. Write your own Cache handler to put and pull from cache.
Extendable config, by default contains paths, default database connection, project name & language etc.
Php Cron processing. Needs to be called by the underlying systems cron job. Allows as many cronjobs as needed, with just one cronjob registered in the Operating System.
Persistent Database Connection, multiple Connections, SQL Ecapsulation, Automatic Injection Protection, Easy access, almost zero code, one class per Query and therefore high reusability.
Integrated PHPDocumentor including HTML and MD output. Register what code you want to document and a button will generate you your documentation.
Serve Files from where you want, dont expose your server file structure.
Html definitions(minimal)
Includes Several Libs, Minimal Lib Interface to bind your Projcts libraries easily
Log from anywhere in your Project, Analysis of Log, Easy debugging, Visitor statistics
Simple Template system, able to replace ${var} placeholders in text and files. Hashbang compatibility, Modern ajax technologies to not reload the page, but load content on demand including a caching meachanism to not load content twice.
Admin Interface to manage SYSTEM features of your Page from a webui. SAI is extenable, so you can write your own Modules to manage your Page-Content as you prefere to do it.
Login, Register etc in a secure manner via API. Includes Password-Reset via EMail Confirmation.
Extendable Database Installtion System, to run sql scripts for the Project upon update or install.
Copyright (c) 2013-2016 Ulf Gebhardt, Webcraft-Media.de
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.