Skip to content

webcraftmedia/system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

System

System - PHP Framework

Solves common Webdevelopment Problems and presents a Solution to several reapearing problems in a good ecapsulated modern way.

Software Requirements

PHP 5.6+
Mysql (Postgressql (deprecated))
Apache (only htaccess is provided)
Graphviz (for phpdocumentor)

Installation

System is not a standalone Software, it is used within php Projects. If you are not familiar with SYSTEM, please checkout the demo project [email protected]:webcraftmedia/demo_basic.git and follow instructions there.

Features

SYSTEM offers diferent Features - a few are described in this readme

Ecapsulation of Code

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.

API

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

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.

Config

Extendable config, by default contains paths, default database connection, project name & language etc.

Cron

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.

DB

Persistent Database Connection, multiple Connections, SQL Ecapsulation, Automatic Injection Protection, Easy access, almost zero code, one class per Query and therefore high reusability.

Docu

Integrated PHPDocumentor including HTML and MD output. Register what code you want to document and a button will generate you your documentation.

Files

Serve Files from where you want, dont expose your server file structure.

Html

Html definitions(minimal)

Lib

Includes Several Libs, Minimal Lib Interface to bind your Projcts libraries easily

Log

Log from anywhere in your Project, Analysis of Log, Easy debugging, Visitor statistics

Page

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.

SAI

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.

Security

Login, Register etc in a secure manner via API. Includes Password-Reset via EMail Confirmation.

SQL

Extendable Database Installtion System, to run sql scripts for the Project upon update or install.

License

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.