Pull to refresh
6
0
Ярослав Ворожко @YaroslavVorozhko

User

Send message

Сегодня IndexTank выключает все свои сервера

Reading time1 min
Views1.4K
В октябре 2011 года профессиональная социальная сеть LinkedIn купила компанию IndexTank, которая занимается производством поисковых технологий. Подробнее про поглощение можно почитать тут.


Согласно договору сегодня IndexTank завершает свое существование как сервис.

Как сообщалось в @IndexTank на прошлой неделе:

IndexTank will be shutting down it's service on Tuesday, April 10th 2012 at 4PM (Pacific). email support@indextank.com for questions.


В первую очередь интересно будет узнать куда будут мигрировать такие крупные проекты как Reddit, Twitvid и Blip.tv.
Так как IndexTank открыл исходники Indextank-engine, то скорее всего эти ребята поднимут поисковые сервера сами.

Для большинства клиентов альтернативами на данный момент являются:

Совместимы с IndexTank API:
* IndexDen www.indexden.com
* Searchify www.searchify.com
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments14

Создание простого доступа к ресурсам из ZF контроллера

Reading time5 min
Views500
Было бы очень хорошо иметь возможность доступа к загружаемым в bootstrap ресурсам из контроллеров приложения. Например, я хотел бы получить доступ к «DB» ресурсу из контроллера следующим образом $this->db;
Для этого напишем Action Helper, который будет загружать определенные ресурсы в контроллер приложения:
class My_ResourceInjector extends Zend_Controller_Action_Helper_Abstract
{
  protected $_resources;

  public function __construct(array $resources = array())
  {
    $this->_resources = $resources;
  }

  public function preDispatch()
  {
    $bootstrap = $this->getBootstrap();
    $controller = $this->getActionController();
    foreach ($this->_resources as $name) {
      if ($bootstrap->hasResource($name)) {
        $controller->$name = $bootstrap->getResource($name);
      }
    }
  }

  public function getBootstrap()
  {
    return $this->getFrontController()->getParam('bootstrap');
  }
}


* This source code was highlighted with Source Code Highlighter.


и инициализируем его в bootstrap:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
  protected function _initResourceInjector()
  {
    Zend_Controller_Action_HelperBroker::addHelper(
      new My_ResourceInjector(array(
        'db',
        'layout',
        'navigation',
      ));
    );
  }
}


* This source code was highlighted with Source Code Highlighter.

Код выше, создаст ссылки на ресурсы: db, layout и navigation. Это значит, что теперь вы можете получить к ним прямой доступ из контроллеров.
class FooController extends Zend_Controller_Action
{
  public function barAction()
  {
    $this->layout->disableLayout();
    $model = $this->getModel();
    $model->setDbAdapter($this->db);
    $this->view->assign(
      'model'   => $this->model,
      'navigation' => $this->navigation,
    );
  }

  // ...
}


* This source code was highlighted with Source Code Highlighter.

Этото решение ведет к некоторому упрощению — теперь нет необходимости вытягивать bootstrap из объекта инициализации, а потом вытягивать ресурс.
Но, у этого решения есть несколько проблем: Откуда мы знаем, какие ресурсы были связаны с контроллером? Как мы можем это контролировать?
Отсюда, вытекает решение создать пул необходимых ресурсов для контроллера.
Читать дальше →
Total votes 12: ↑6 and ↓60
Comments19

Information

Rating
Does not participate
Location
Berlin, Berlin, Германия
Date of birth
Registered
Activity