Как я использую автономный класс в cakephp 1.3?

У меня есть автономный класс, который я записал в PHP для некоторых очень простых функций LDAP/AD. и я хотел бы использовать этот класс в проекте, я продолжаю работать в cakephp.

Это похоже в cakephp 1.2, я мог просто добавить класс как, поставщик, однако похоже, что cakephp 1.3 удалил поддержку поставщиков. Таким образом, как я пошел бы о вызове, некоторые функционируют от этого класса?

(Я хотел бы попытаться сохранить сам класс тем же и не превратить его в плагин, поскольку это кажется ненужным),

Спасибо!

код ниже:

**<?php
class UsersController extends AppController {

var $name = 'Users';

    //commented out because it breaks the script
    //App::import('Lib', 'ldap');


function index() {
    $this->User->recursive = 0;
    $this->set('users', $this->paginate());
}

    function login() {

        if (!empty($this->data)) {
                if ($ldap->auth($this->data['User']['user'],$this->data['User']['password'])) {
                        $this->Session->setFlash(__('The user has been saved', true));
                        $this->Session->write('user', $this->data['User']['user']);
                        $this->redirect(array('action' => 'index'));
                } else {
                        $this->Session->setFlash(__('Login Failed', true));
                }
        }
    }

    function logout() {
        $this->Session->delete('user');
        $this->redirect($this->referer());

    }

function view($id = null) {
    if (!$id) {
        $this->Session->setFlash(__('Invalid user', true));
        $this->redirect(array('action' => 'index'));
    }
    $this->set('user', $this->User->read(null, $id));
}

function add() {
    if (!empty($this->data)) {
        $this->User->create();
        if ($this->User->save($this->data)) {
            $this->Session->setFlash(__('The user has been saved', true));
            $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The user could not be saved. Please, try again.', true));
        }
    }
    $projects = $this->User->Project->find('list');
    $this->set(compact('projects'));
}

function edit($id = null) {
    if (!$id && empty($this->data)) {
        $this->Session->setFlash(__('Invalid user', true));
        $this->redirect(array('action' => 'index'));
    }
    if (!empty($this->data)) {
        if ($this->User->save($this->data)) {
            $this->Session->setFlash(__('The user has been saved', true));
            $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The user could not be saved. Please, try again.', true));
        }
    }
    if (empty($this->data)) {
        $this->data = $this->User->read(null, $id);
    }
    $projects = $this->User->Project->find('list');
    $this->set(compact('projects'));
}

function delete($id = null) {
    if (!$id) {
        $this->Session->setFlash(__('Invalid id for user', true));
        $this->redirect(array('action'=>'index'));
    }
    if ($this->User->delete($id)) {
        $this->Session->setFlash(__('User deleted', true));
        $this->redirect(array('action'=>'index'));
    }
    $this->Session->setFlash(__('User was not deleted', true));
    $this->redirect(array('action' => 'index'));
}
}
?>**
7
задан lanrat 27 July 2010 в 20:52
поделиться

2 ответа

Cake 1.3 по-прежнему отлично поддерживает идею файлов поставщиков. Кроме того, они теперь также поддерживают «библиотеки» , дополнительные классы, которые не являются сторонними классами. Просто поместите свои файлы в каталог / vendors или / libs и загрузите файл с помощью App :: import .

8
ответ дан 6 December 2019 в 22:59
поделиться

Я заставил его работать, мне пришлось вызвать "App::import('Lib', 'ldap');" вне класса контроллера, а затем вызвать его как новый класс внутри функции, которую я хотел.

Ниже приведен конечный результат

<?php
App::import('Lib', 'ldap');
class UsersController extends AppController {

    var $name = 'Users';

    function index() {
        $this->User->recursive = 0;
        $this->set('users', $this->paginate());
    }

        function login() {

            if (!empty($this->data)) {
                $ldap = new ldap;
                    if ($ldap->auth($this->data['User']['user'],$this->data['User']['password'])) {

                            if (!$this->User->findByUser($this->data['User']['user']) )
                            {
                                $ldap_info = $ldap->getInfo($this->data['User']['user']);
                                $this->data['User']['name'] = $ldap_info['name'];
                                $this->add();
                            }

                            $this->Session->write('user', $this->data['User']['user']);
                            $this->redirect(array('action' => 'index'));
                    } else {
                            $this->Session->setFlash(__('Login Failed', true));
                    }
            }
        }

        function logout() {
            $this->Session->delete('user');
            $this->redirect($this->referer());

        }

    function view($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Invalid user', true));
            $this->redirect(array('action' => 'index'));
        }
        $this->set('user', $this->User->read(null, $id));
    }

    private function add() {
        if (!empty($this->data)) {
            $this->User->create();
            if ($this->User->save($this->data)) {
                $this->Session->setFlash(__('The user has been saved', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('The user could not be saved. Please, try again.', true));
            }
        }
        $projects = $this->User->Project->find('list');
        $this->set(compact('projects'));
    }

    function edit($id = null) {
        if (!$id && empty($this->data)) {
            $this->Session->setFlash(__('Invalid user', true));
            $this->redirect(array('action' => 'index'));
        }
        if (!empty($this->data)) {
            if ($this->User->save($this->data)) {
                $this->Session->setFlash(__('The user has been saved', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('The user could not be saved. Please, try again.', true));
            }
        }
        if (empty($this->data)) {
            $this->data = $this->User->read(null, $id);
        }
        $projects = $this->User->Project->find('list');
        $this->set(compact('projects'));
    }

    function delete($id = null) {
        if (!$id) {
            $this->Session->setFlash(__('Invalid id for user', true));
            $this->redirect(array('action'=>'index'));
        }
        if ($this->User->delete($id)) {
            $this->Session->setFlash(__('User deleted', true));
            $this->redirect(array('action'=>'index'));
        }
        $this->Session->setFlash(__('User was not deleted', true));
        $this->redirect(array('action' => 'index'));
    }
}
?>
3
ответ дан 6 December 2019 в 22:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: