Definicja glue code:
→ Glue code
Zalety 1 pliku z całym glue-code/crud czy jak byś tego nie nazwał, są następujące:
- mniej przeskakiwania między plikami w edytorze tekstowym (oszczędzasz czas)
- możliwość zredukowania widocznej części kodu przez użycie "code folding", dięku temu możesz na jednej dwóch stronach miec dosep do piewszego poziomu logiki całej pierdolonej aplikacji
Szkielet pliku api.php wygląda tak:
Kod php:
<?php
error_reporting(0);
@ini_set('display_errors', 0);
// require_once 'config.php';
// @package: https://docs.google.com/uc?id=0B7KFLJQ_HETDM1lyc2FKb2FiQUE&export=download
require_once 'database/DB.php';
if ( ! $db ){
if ( ! $dbconfig ){
$dbconfig = array(
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => '',
'dbprefix' => '',
);
}
$dbconfig = array_merge(array(
'dbdriver' => 'mysql',
'pconnect' => false,
'db_debug' => true,
'cache_on' => false,
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
), $dbconfig);
try {
$db = DB($dbconfig);
}
catch ( Exception $e ){
die($e->getMessage());
}
}
if ( ! function_exists('action')){
function action($params){
$old_request = $_REQUEST;
foreach ($params as $key => $val){
$_REQUEST[$key] = $val;
}
ob_start();
include 'api.php';
$content = ob_get_contents();
ob_end_clean();
$json = json_decode($content, true);
if ( JSON_ERROR_NONE === json_last_error()){
$content = $json;
}
$_REQUEST = $old_request;
return $content;
}
}
if ( $_COOKIE['sess_id'] ){
$result = $db
->where('id', $_COOKIE['sess_id'])
->limit(1)
->get('session')
->row_array();
if ( $result ){
$user = $result['user_id'];
}
else {
$user = null;
}
}
else {
$user = null;
}
switch ($_REQUEST['action']){
// ADMIN
// AUTH
// CRON
// PUBLIC
// TESTS
case '':
break;
default:
$result = array(
'status' => 'error',
'message' => 'No action name in request',
);
break;
}
if ( getenv('HTTP_ORIGIN')){
header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
header('Access-Control-Max-Age: 1000');
// header('Access-Control-Allow-Headers: Content-Type');
header('Access-Control-Allow-Headers: x-requested-with ');
}
if ( ! $_no_output ){
if ( $_REQUEST['callback'] ){
header('Content-type: application/javascript');
// echo 'callback(\''.json_encode($result).'\');';
echo '/**/ callback(\''.json_encode($result).'\');';
}
else {
header('Content-type: application/json');
echo json_encode($result);
}
} $_REQUEST['callback'] ){
header('Content-type: application/javascript');
// echo 'callback(\''.json_encode($result).'\');';
echo '/**/ callback(\''.json_encode($result).'\');';
}
else {
header('Content-type: application/json');
echo json_encode($result);
}
}
Do tego mam oczywiście masę dodtaków, jedna z najważniejszych to rekurencja:
Kod php:
<?php
$res = action(array(
'action' => '',
// '' => $,
));
Ale wracając do dyskusji JSP vs PHP for webapp backend.
Każdy ninja wie, że PHP nadaje się do tego lepiej.
Dziękuję