PHP framework for web development (RESTful)
Go to file
xdrm-brackets 2a74ae51e7 Updated api/2.2 notice and minupd for main README 2017-09-07 20:17:30 +02:00
exporter added shortcuts + added /public_html/view folder 2016-12-12 01:45:59 +01:00
notice Updated api/2.2 notice and minupd for main README 2017-09-07 20:17:30 +02:00
src Added simplified static router:2.0 call 2016-12-12 20:24:19 +01:00
README.md Updated api/2.2 notice and minupd for main README 2017-09-07 20:17:30 +02:00
install.sh added `install.sh` + `uninstall.sh` 2016-12-07 12:22:49 +01:00
uninstall.sh added `install.sh` + `uninstall.sh` 2016-12-07 12:22:49 +01:00

README.md

xdrm-framework

Description

xdrm-framework is a tool that wraps my framework and all it's component's versions. It allows to build a web framework's base with chosen modules and their versions.

1. Build a project

To use the xdrm-framework's project builder, just open a linux terminal and type :

  1. ./xfw packages - to display the available modules
  2. ./xfw install @pkg_name:1.2 - to install a package and its version (1.2 here)
  3. ./xfw remove @pkg_name - to disable a module
  4. ./xfw build @project_root - will create your project in the folder @project_root
  5. ./xfw init - to remove all enabled modules

2. Project's file structure

xdrm-framework is based on all in config so you will have this structure :

  • folder /build which contains framework's modules (core + data).
  • folder /public_html which contains visible content (html, css, js).
  • folder /config which contains the modules' config files (mainly json).
  • file /autoloader.php which will auto-load the components.

Note: In every php file you want to use framework's classes, you have to begin your file by :

<?php
	  /* [1] load the autoloader with correct path */
	  require_once '../autoloader.php';

	  /* [2] then you can load your classes */
	  use api\core\Request;  // ex1: api request manager
	  use error\core\Error;  // ex2: error manager
	  use error\core\Err;    // ex3: error codes

	  /* [3] and use them as long as you want without namespace */
	  $request  = new Request('module/method', ['id_user' => 10]);
	  $response = $request->dispatch();

	  if( $response->error->get() === Err::Success )
		  echo "All is going right!\n";

Note: Some global constants are created into the autoloader so they are accessible from any file which loads the autoloader:

  • __BUILD__ - The absolute build folder path
  • __PUBLIC__ - The absolute public_html folder path
  • __ROOT__ - The absolute root path (project root)
  • __CONFIG__ - The absolute config folder path

3. Packages

3.1 API - self-managed API

version 1.0 - documentation

version 2.0 - documentation

version 2.2 - documentation

3.2 Log - multilog system

version 1.0 - documentation

3.3 Filedriver - optimized file driver

version 1.0 - documentation

[3.2] error - error system

[3.3] database - database wrapper and repository manager

[3.4] orm - sql orm

[3.5] router - apache2 router

[3.6] lightdb - fast key-value storage