PHP Classes

File: app/libraries/Jaxon.php

Recommend this page to a friend!
  Classes of Thierry Feuzeu   Jaxon for CodeIgniter   app/libraries/Jaxon.php   Download  
File: app/libraries/Jaxon.php
Role: Class source
Content type: text/plain
Description: Class source
Class: Jaxon for CodeIgniter
CodeIgniter plugin to call PHP from with AJAX
Author: By
Last change: Added a logger.
Changed request processing.
Changed request processing.
Removed unused argument.
Updated the plugin and the controller.
Renamed the bootstrap methods.
Adapted to the new class hierarchy is jaxon-core.
Updated the Armada setup.
Date: 3 years ago
Size: 2,895 bytes
 

Contents

Class file image Download
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');

use
Jaxon\Features\App;
use
Jaxon\CI\View;
use
Jaxon\CI\Session;
use
Jaxon\CI\Logger;

class
Jaxon
{
    use
App;

    public function
__construct()
    {
       
// Initialize the Jaxon plugin
       
$this->setup();
    }

   
/**
     * Set the module specific options for the Jaxon library.
     *
     * @return void
     */
   
protected function setup()
    {
       
// Load Jaxon config settings
       
$ci = get_instance();
       
$ci->config->load('jaxon', true);
       
$aLibOptions = $ci->config->item('lib', 'jaxon');
       
$aAppOptions = $ci->config->item('app', 'jaxon');

       
// Jaxon library default settings
       
$bIsDebug = $ci->config->item('debug');
       
$sJsUrl = rtrim($ci->config->item('base_url'), '/') . '/jaxon/js';
       
$sJsDir = rtrim(FCPATH, '/') . '/jaxon/js';

       
$jaxon = jaxon();
       
$di = $jaxon->di();
       
$viewManager = $di->getViewManager();
       
// Set the default view namespace
       
$viewManager->addNamespace('default', '', '', 'codeigniter');
       
// Add the view renderer
       
$viewManager->addRenderer('codeigniter', function() {
            return new
View();
        });

       
// Set the session manager
       
$di->setSessionManager(function() {
            return new
Session();
        });

       
// Set the logger
       
$this->setLogger(new Logger());

       
$this->bootstrap()
            ->
lib($aLibOptions)
            ->
app($aAppOptions)
           
// ->uri($sUri)
           
->js(!$bIsDebug, $sJsUrl, $sJsDir, !$bIsDebug)
            ->
run();

       
// Prevent the Jaxon library from sending the response or exiting
       
$jaxon->setOption('core.response.send', false);
       
$jaxon->setOption('core.process.exit', false);
    }

   
/**
     * Get the HTTP response
     *
     * @param string $code The HTTP response code
     *
     * @return mixed
     */
   
public function httpResponse($code = '200')
    {
       
$jaxon = jaxon();
       
// Get the reponse to the request
       
$jaxonResponse = $jaxon->di()->getResponseManager()->getResponse();
        if(!
$jaxonResponse)
        {
           
$jaxonResponse = $jaxon->getResponse();
        }

       
// Create and return a CodeIgniter HTTP response
       
get_instance()->output
           
->set_status_header($code)
            ->
set_content_type($jaxonResponse->getContentType(), $jaxonResponse->getCharacterEncoding())
            ->
set_output($jaxonResponse->getOutput());
           
// ->_display();
   
}

   
/**
     * Process an incoming Jaxon request, and return the response.
     *
     * @return mixed
     */
   
public function processRequest()
    {
       
// Process the jaxon request
       
jaxon()->processRequest();

       
// Return the reponse to the request
       
$this->httpResponse();
    }
}