https://github.com/jaxon-php/jaxon-yii
Jaxon library integration for the Yii framework https://www.jaxon-php.org.
https://github.com/jaxon-php/jaxon-yii
Last synced: 3 months ago
JSON representation
Jaxon library integration for the Yii framework https://www.jaxon-php.org.
- Host: GitHub
- URL: https://github.com/jaxon-php/jaxon-yii
- Owner: jaxon-php
- License: bsd-3-clause
- Created: 2016-06-09T05:28:38.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2024-11-15T19:50:18.000Z (8 months ago)
- Last Synced: 2025-03-25T02:43:33.496Z (3 months ago)
- Language: PHP
- Homepage:
- Size: 62.5 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Jaxon integration for the Yii framework
=======================================This package integrates the [Jaxon library](https://github.com/jaxon-php/jaxon-core) into the Yii framework.
It requires the version 2.0.11 or newer.Installation
------------Add the following lines in the `composer.json` file, and run the `composer update` command.
```json
"require": {
"jaxon-php/jaxon-yii": "^4.0"
}
```Or run the `composer require jaxon-php/jaxon-yii` command.
This package provides a filter that must be attached to routes to pages where the Jaxon features are enabled.
This is an example of a Yii controller using the Jaxon library.
```php
namespace app\controllers;use Yii;
use yii\web\Controller;
use Jaxon\Yii\Filter\JaxonConfigFilter;class DemoController extends Controller
{
public function behaviors()
{
return [
[
'class' => JaxonConfigFilter::class,
'only' => ['index', 'jaxon'],
],
];
}/**
* Process Jaxon ajax requests. This route must be the same that is set in the Jaxon config.
*/
public function actionJaxon()
{
$jaxon = jaxon()->app();
if(!$jaxon->canProcessRequest())
{
// Jaxon failed to find a plugin to process the request
return; // Todo: return an error message
}$jaxon->processRequest();
return $jaxon->httpResponse();
}/**
* Insert Jaxon js and css codes in the page.
*/
public function actionIndex()
{
// Set the layout
$this->layout = 'demo';
// Get the Jaxon module
$jaxon = jaxon()->app();return $this->render('index', [
'jaxonCss' => $jaxon->css(),
'jaxonJs' => $jaxon->js(),
'jaxonScript' => $jaxon->script()
]);
}
}
```Before it prints the page, the controller calls the `$jaxon->css()`, `$jaxon->js()` and `$jaxon->script()` functions,
to get the CSS and javascript codes generated by Jaxon which are inserted into the page.Configuration
------------The Jaxon library settings are defined in the `@app/config/jaxon.php` file, and separated into two sections.
The options in the `lib` section are those of the Jaxon core library, while the options in the `app` sections are those of the Jaxon application.The following options can be defined in the `app` section of the config file.
| Name | Description |
|------|---------------|
| directories | An array of directory containing Jaxon application classes |
| views | An array of directory containing Jaxon application views |
| | | |By default, the `views` array is empty. Views are rendered from the framework default location.
There's a single entry in the `directories` array with the following values.| Name | Default value | Description |
|------|---------------|-------------|
| directory | @app/jaxon/classes | The directory of the Jaxon classes |
| namespace | \Jaxon\App | The namespace of the Jaxon classes |
| separator | . | The separator in Jaxon class names |
| protected | empty array | Prevent Jaxon from exporting some methods |
| | | |Usage
-----### The Jaxon classes
The Jaxon classes can inherit from `\Jaxon\App\CallableClass`.
By default, they are located in the `@app/jaxon/ajax` dir of the Yii application, and the associated namespace is `\Jaxon\Ajax`.This is an example of a Jaxon class, defined in the `@app/jaxon/ajax/HelloWorld.php` file.
```php
namespace Jaxon\Ajax;class HelloWorld extends \Jaxon\App\CallableClass
{
public function sayHello()
{
$this->response->assign('div2', 'innerHTML', 'Hello World!');
return $this->response;
}
}
```Contribute
----------- Issue Tracker: github.com/jaxon-php/jaxon-yii/issues
- Source Code: github.com/jaxon-php/jaxon-yiiLicense
-------The package is licensed under the BSD license.