Загрузка пользовательских классов в CodeIgniter? - PullRequest
11 голосов
/ 11 декабря 2010

Я только начал использовать CodeIgniter, и я хотел бы импортировать некоторые из моих старых классов для использования в новом проекте. Однако я не хочу изменять их слишком сильно, чтобы они подходили для CI, и я хотел бы иметь возможность продолжать использовать функцию автозаполнения NetBeans, которая не слишком хорошо работает с CI.

Итак, каков наилучший способ загрузки пользовательских классов и файлов классов в CodeIgniter без использования механизмов загрузки библиотеки / модели?

Я прошу прощения, если это то, что мне нужно быстро найти, но я не могу найти то, что мне нужно. Все, что я вижу, просто говорит мне, как пройти через КИ.

Ответы [ 4 ]

20 голосов
/ 12 мая 2014

Чтобы сделать это способом codeigniter, поместите ваши собственные классы в папку библиотек codeigniter. А затем используйте его, добавив этот класс в качестве библиотеки в ваш контроллер следующим образом:

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

class Someclass {

   public function some_function()
   {
   }
}

/* End of file Someclass.php */

используется в контроллере:

$this->load->library('someclass');

оформить заказ на http://www.codeigniter.com/user_guide/general/creating_libraries.html

14 голосов
/ 13 декабря 2010

Библиотеки легко писать, но у них есть несколько ограничений. Конструкторы могут принимать только массив в качестве параметра, и предполагается, что для каждого файла будет существовать только один класс.

Вы можете включать любые свои собственные классы для работы с ними по своему усмотрению, поскольку это только PHP ofc:)

include APPPATH . 'classes/foo.php';
$foo = new Foo;

Или настройте функцию __autoload () в вашем config.php (лучшее место для нее), и вы можете иметь доступ к своим классам без необходимости их включения.

10 голосов
/ 11 декабря 2010

Я бы сказал, что вы, по крайней мере, напишите класс-оболочку, который может require создавать классы, создавать объекты и делать их доступными.Тогда вы, вероятно, могли бы автоматически загружать такую ​​библиотеку и использовать ее по мере необходимости.

Я бы порекомендовал вам хотя бы попытаться подогнать их под CI, так как продвижение вперед сделает вашу жизнь намного проще.Я был в том же положении и узнал только это по пути.

0 голосов
/ 12 декабря 2010

Если вы только начинаете использовать CodeIgniter, возможно, вам следует проверить Kohana (http://kohanaframework.org/).. Во многих отношениях он очень похож на CodeIgniter, но он загружает классы обычным способом (используя new ClassName ()), поэтому Netbeans ' функции автозаполнения должны работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...