Настройка Codeigniter 2, Doctrine 1.2 и Swift Mailer 4.0

Пояснение по поводу версий

Для связки используются версии: CI — 2.0.2, Doctrine — 1.2.3, Swift — 4.0.6. В общем-то все это добро запустится на php-5.2.x и выше, но так как Doctrine 2 требует php-5.3.x, что не всегда встретишь на shared hosting’е, да и не на каждом VDS, то будем использовать последнюю стабильную версию ветки 1.х.х.

Где взять

Все перечисленные компоненты можно скачать:

или выдернуть из систем контроля версий:

  • Codeigniter — hg clone ssh://hg@bitbucket.org/ellislab/codeigniter-reactor
  • Doctrine — git clone git://github.com/doctrine/doctrine1.git
  • Swift — git clone git://github.com/swiftmailer/swiftmailer.git

Continue reading «Настройка Codeigniter 2, Doctrine 1.2 и Swift Mailer 4.0»

Настройка Codeigniter 2, Doctrine 1.2 и Swift Mailer 4.0

Локальный ftp-сервер для WordPress разработчика

Известно, что для обновления платформы и плагинов WordPress использует ftp. Что бы использовать возможность обновления на локальной машине установим и настроим локальный ftp-сервер.

Нижеизложенное будет работать везде, в качестве примера будем использовать Ubuntu и vsftpd:

1. Установим vsftpd

sudo apt-get install vsftpd

2. Настроим его (следующие строки должны быть раскомментированы):

listen=YES
local_enable=YES
write_enable=YES
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120

3. Применим настройки

sudo service vsftpd restart

Все. Можно спокойно обновляться через админку на локальной машине, достаточно указать локальный адрес, пользователя и его пароль:

Локальный ftp-сервер для WordPress разработчика

Установка Ruby on Rails в Ubuntu

В последнее время все с большим интересом смотрю в сторону Ruby on Rails. Что и говорить, Symfony и Codeigniter, которые я постоянно использую для разработки, очевидно, немало идей почерпнули именно из этого фреймворка.

Итак, в качестве основной системы возьмем Ubuntu, что в прочем не играет большой роли, так как установка на других системах не будет кардинально отличаться. Для начала установим необходимые пакеты.

sudo apt-get install ruby1.8 ruby1.8-dev rubygems1.8 libmysql-ruby1.8 librmagick-ruby1.8 libsqlite3-ruby libsqlite3-dev build-essential libmagick9-dev libmysqlclient-dev

Будем считать, что mysql уже установлен. Пакеты *-dev нужны для корректной сборки gem’ов. Установим rubygems-update, что бы наши gem’ы всегда были в актуальном состоянии.

sudo gem install rubygems-update

Теперь непосредственно установим Rails и несколько дополнительных плагинов.

sudo gem install rails --include-dependencies mysql2 sqlite3-ruby rmagick mongrel

Это минимальный набор gem’ов, которого будет достаточно, чтобы начать работу над проектом. Проверим работоспособность, для этого создадим тестовое приложение.

rails new myapp
cd myapp
bundle install
rails server

Открываем страницу http://0.0.0.0:3000/ и если все установилось правильно, то мы увидим тестовую страницу.

Ruby on Rails test page

Установка Ruby on Rails в Ubuntu

Установка pake

Для выполнения предопределеных задач рубисты используют rake. Для php-программистов есть похожий инструмент — pake.

Установка элементарна:

  • pear channel-discover pear.symfony-project.com
  • pear channel-discover pear.indeyets.pp.ru
  • pear install indeyets/pake

Подробнее об утилите на github

Установка pake

Ссылка на другое приложение в Symfony

Подсмотрено на просторах сети, после небольших правок стало готово к использованию:

<?php
    public static function cross_app_link_to($app, $route, $args=null)
    {
      /* get the host to build the absolute paths
         needed because this menu lets switch between sf apps
      */ 
      $host = sfContext::getInstance()->getRequest()->getHost() ;
      /* get the current environment. Needed to switch between the apps preserving
         the environment
      */
      $env = sfConfig::get('sf_environment');
      /* get the routing file 
      */
      $appRoutingFile = sfConfig::get('sf_root_dir').
            DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.
            $app.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.
            'routing.yml' ;
      $routeUrl = "";
      if (file_exists($appRoutingFile))
      {
        $yml = sfYaml::load($appRoutingFile) ;
        $routeUrl = $yml[$route]['url'] ;
        if ($args)
        {
          foreach ($args as $k => $v)
          {
            $routeUrl = str_replace(':'.$k, $v, $routeUrl) ;
          }
        }
        if (strrpos($routeUrl, '*') == strlen($routeUrl)-1)
        {
          $routeUrl = substr($routeUrl, 0, strlen($routeUrl)-2) ;
        }
      }
      if ($env == 'dev')
      {
          $path = 'http://' . $host . '/' . $app . '_dev.php' . '/' . $routeUrl ;
      }
      else 
      {
        $path = 'http://' . $host . '/' . $app . '.php' . '/' . $routeUrl ;
      }
      return $path ;
    }
?>

Можно положить во frontendConfiguration.class.php, или оформить в виде helper’а. После чего просто вызываем:

<?php
frontendConfiguration::cross_app_link_to('backend', 'module_name')
?>
Ссылка на другое приложение в Symfony