public function search()
 {
     try {
         $this->packages = PackageSearch::simple_search($_GET['search']);
     } catch (NimbleRecordNotFound $e) {
         $this->packages = array();
     }
     switch ($this->format) {
         case 'xml':
             echo $this->packages->to_xml(array('except' => array('user_id'), 'append' => array('channel' => function ($obj) {
                 return $obj->user->pear_farm_url();
             }, 'username' => function ($obj) {
                 return $obj->user->username;
             })));
             $this->layout = false;
             $this->has_rendered = true;
             break;
         case 'json':
             $names = collect(function ($p) {
                 return $p->name;
             }, $this->packages);
             echo json_encode(array($_GET['search'], $names));
             $this->layout = false;
             $this->has_rendered = true;
             break;
         case 'html':
             $this->full = true;
             $this->set_default_side_bar();
             if (!isset($_GET['search']) || empty($_GET['search']) || $_GET['search'] == 'Search packages…') {
                 $this->redirect_to('/');
             }
             break;
     }
 }
 public function search()
 {
     $this->set_default_side_bar();
     $this->packages = PackageSearch::simple_search($_GET['search']);
     switch ($this->format) {
         case 'xml':
             $this->render('search/search.xml');
             break;
         case 'json':
             $names = collect(function ($p) {
                 return $p->name;
             }, $this->packages);
             echo json_encode(array($_GET['search'], $names));
             $this->layout = false;
             $this->has_rendered = true;
             break;
         case 'html':
             if (!isset($_GET['search']) || empty($_GET['search']) || $_GET['search'] == 'Search packages…') {
                 $this->redirect_to('/');
             }
             break;
     }
 }