arnouxor/alienosor

此包已被废弃且不再维护。未建议替代包。
关于此包最新版本(v2.0.18)没有可用的许可信息。

在Codeigniter下优化Ajax / Basic或REST调用

v2.0.18 2017-10-02 07:25 UTC

README

Alienosor允许您通过强制提取业务逻辑来清理控制器

  • 安全性:您必须控制输入变量
  • 整洁性:您必须将业务逻辑放在库/模型中
  • 易用性:它检查变量,处理返回值和其他小事情

一切只需简单的:$this->alienosor->process({params})

安装

composer require arnouxor/alienosor

然后在控制器中加载第三方库

$this->load->add_package_path(FCPATH . 'vendor/arnouxor/alienosor');
$this->load->library('alienosor');
$this->load->remove_package_path(FCPATH . 'vendor/arnouxor/alienosor');

Ajax调用

   public function ajax_search()
    {
         $config = array(
            ['field' => 'searchText', 'label' => '', 'rules' => 'trim|required|integer'],
        );

        // appel d'alienosor
        $this->alienosor->process($config, "AJAX", array(
            ["type" => "library", "file" => "myfirst_lib", "method" => "method1", "params" => array("searchText")],
            ["type" => "model", "file" => "myfirst_model", "method" => "method2", "params" => array("searchText", "__LAST_RESULT", "mycustomvariable")]
        ));
        
        // le retour est géré automatiquement
    }

REST调用

使用https://github.com/maltyxx/restserver

public function get()
    {
        $response = $this->restserver->protocol();
        
        $config = array(
            ['field' => 'name', 'label' => '', 'rules' => 'trim|min_length[0]|max_length[100]'],
        );
        
        // appel d'alienosor
        $results = $this->alienosor->process(
            $config, 
            "BASIC", 
            [
                ["type" => "model", "file" => "artist_model", "method" => "search", "params" => ["name"]]
            ]
        );
        
        $this->restserver->response($results, 201);
    }

转换

您可以调用一个转换方法,在将其发送到所需方法之前转换一个参数。

$config = [
    ['field' => 'myData', 'rules' => 'trim|alpha_dash', 'transformation' => 'myMethod'],
];