Устанавливаем и настраиваем Sparks

18th Октябрь 2011 | Категории: Code Igniter, PHP | Метки:

Сегодня мы разберёмся, что же такое Code Igniter Sparks.

Sparks — это:
1. Централизованное место для создания, поиска и распространения кода для Code Igniter.
2. Маленькая библиотека для работы в консоли, позволяющая быстро добавлять сторонние библиотеки в ваш проект.
3. Замена стандартного механизма загрузки библиотек (для Sparks).
4. http://getsparks.org/ — Сайт-репозиторий кода.
5. В переводе с английского означает искры, то есть каждая библиотека — это искра для нашего «пламени». Стилистика именования соблюдена.

У сообщества разработчиков на Code Igniter до недавнего времени не было централизованного места распространения своих библиотек. При поиске нужной библиотеки необходимо было задействовать форумы, wiki, блоги, google, в конце концов. К тому же, могло оказаться, что найденное решение попросту не работает с вашим кодом или вашей версией Code Igniter. Код мог быть глючным, заброшенным автором, или просто отвратительно написанным.

Но с вышеперечисленными проблемами покончено. Да здравствует Sparks!

1. Автоматическая установка

Если вы счастливый обладатель ОС семейства Linux, Unix, OSX (обладатели windows тоже могут воспользоваться этим методом, указав полный путь до php.exe), то в консоли выполняем следующее:

Переходим в корень вашего приложения на Code Igniter.
Выполняем команду:

php -r "$(curl -fsSL http://getsparks.org/go-sparks)"

lgndru@srv ~/ $ php -r "$(curl -fsSL http://getsparks.org/go-sparks)"
Pulling down spark manager from http://getsparks.org/static/install/spark-manager-0.0.5.zip ...
Pulling down Loader class core extension from http://getsparks.org/static/install/MY_Loader.php.txt ...
Extracting zip package ...
Cleaning up ...
Spark Manager has been installed successfully!
Try: `php tools/spark help`

Если у вас каталог application переименован, то вы получите такую ошибку:

Can't find application/core. Currently this script only works with the default instance of Reactor. You may need to try a manual installation..

Чтобы всё-таки установить Sparks можно прибегнуть к следующему трюку:

Создаём каталог application/core, выполняем установку по инструкции, копируем содержимое application/core в каталог_вашего_приложения/core

2. Ручная установка

  • Скачиваем архив библиотеки Sparks: spark-manager.zip (http://getsparks.org/download)
  • Распаковываем содержимое архива в каталог ‘tools’ в корне вашего приложения на CodeIgniter.
  • Проверьте, что в корне приложения у вас находится каталог ‘tools’ и внутри него есть файл с названием ‘spark’
  • Скачиваем класс-загрузчик: http://getsparks.org/static/install/MY_Loader.php.txt
  • Перемещаем его по адресу application/core/MY_Loader.php (не забывая переименовать)
  • Если всё получилось — просто используем Sparks.

3. Ручная настройка класса-загрузчика Sparks без установки консольного менеджера библиотек

  • Переходим в корень вашего приложения на Code Igniter.
  • Создаем каталог ‘sparks’
  • Создаем файл по адресу: application/core/MY_Loader.php
  • И копируем содержимое http://getsparks.org/static/install/MY_Loader.php.txt в созданный файл.
  • Проверяем, установлен ли в настройках префикс класса как «MY_»
  • #application/config/config.php
    $config['subclass_prefix'] = 'MY_';

  • Если всё получилось — просто используем Sparks.

4. Добавление и использование библиотек Sparks

Для примера будем устанавливать самую популярную библиотеку для авторизации и аутентификации: ion_auth. Для этого консольному менеджеру библиотек передадим команду install и название библиотеки — ion_auth (на хостинге нет GIT, поэтому выдало предупреждение):

lgndru@srv ~/lgndru $ php tools/spark install ion_auth
[ SPARK ] Retrieving spark detail from getsparks.org
[ WARNING ] Git not found - reverting to archived copy
[ SPARK ] From Downtown! Retrieving spark from ZIP archive at  http://getsparks.org/static/archives/ion_auth/ion_auth-2.0.9.zip
[ SPARK ] Spark installed to ./sparks/ion_auth/2.0.9 - You're on fire!

И теперь, чтобы загрузить библиотеку, необходимо либо загрузить её в контроллере:

$this->load->spark('ion_auth/2.0.9');

либо прописать в автозагрузке:

#config/autoload.php:
$autoload['sparks'] = array('ion_auth/2.0.9');

5. Ручная установка библиотек Sparks

  • Заходим на сайт http://getsparks.org
  • Находим нужную библиотеку (ion_auth)
  • Нажимаем на ссылку «Get ion_auth-2.0.9.zip» и скачиваем архив с библиотекой.
  • Распаковываем архив в каталог sparks, после чего получаем примерно такую структуру:
  • /application
    /system
    /sparks
    ..../ion_auth
    ......../2.0.9
    ............/config
    ............/libraries

    А дальше всё так же, как и в пункте 5. Загружаем вручную или прописываем в автозагрузку.

    6. Почему не стоит совмещать каталоги библиотеки Sparks с каталогами вашего приложения

    Структура каждой отдельной библиотеки Sparks может содержать свои собственные каталоги с конфигами, библиотеками, моделями, вьюхами и так далее. Не стоит превращать в кашу. Разработчики создали удобный механизм настройки, распространения и использования библиотек-модулей. Так лучше раз научиться пользоваться консолью (хотя это и не обязательно, можно по старинке скачивать библиотеки) и подключать Sparks к вашему приложению.

    7. Что еще умеет консольная утилита

    — устанавливать spark
    — переустанавливать
    — удалять
    — отображать различную информацию (список установленных spark, url’ы их репозиториев, версии)
    — искать spark

    К примеру, вам необходима библиотека для авторизации. Набираем в консоли:

    lgndru@srv ~/lgndru $ php  tools/spark search auth

    И получаем список всех доступных библиотек:

    ion_auth - Simple and Lightweight Auth System
    auth_controller - AuthenticatedController library
    realex-payments - Spark to use the Realex Payments RealAuth service
    authority - Authorization Library for CodeIgniter
    Auth - Authentication library with control panel.
    youtube - Youtube API Library
    Captcha - Advanced but simple to use Captcha package.
    codeigniter-oauth - Spark for integrating with multiple Oauth providers - uniform input and response
    oauth2 - A multi-provider oAuth 2 client package.
    cloudmanic-api - An API controller with default CRUD operations built-in.
    netflix - Netflix API Library

    В общем, настоятельно рекомендую.

    Subscribe without commenting


    Пока комментариев нет.