• Можно ли создать приложение для Android без IDE?

    @StasRomeo Автор вопроса
    illuzor, ну это танцы с бубном не на один вечер, хотя штука дельная)) Спасибо. Надеюсь скомпилирую чё-нить.
  • Можно ли создать приложение для Android без IDE?

    @StasRomeo Автор вопроса
    То, что можно, то это понятно, раз пишут))
    Но интересно, практикуется ли такое.
  • Правильно ли я сделал плагин?

    @StasRomeo Автор вопроса
    Да, с этим понятно, это я наглядно просто показал "типо" разные методы. Вопрос был именно про объявления и вызовы.
  • Как правильно наследовать?

    @StasRomeo Автор вопроса
    Спасибо за советы!
    Не так всё плохо, как я думал :)
  • Как правильно наследовать?

    @StasRomeo Автор вопроса
    Герман Мартин,
    Редактируете вы тут что? Сначала надо получить и менять ИД т.е. первичный ключ у записи нехорошо.

    Не очень понял, что тут имелось ввиду?
  • Как правильно наследовать?

    @StasRomeo Автор вопроса
    Герман Мартин, Спасибо за такой расширеный ответ. Я пока учусь :)
    На счет наследования приватного метода, согласен, забыл про это. Там ошибка в наследнике будет.
  • Как правильно наследовать?

    @StasRomeo Автор вопроса
    Decadal,
    class Book{
    
    protected $db;
    
    public function __construct($db){
      $this->db = $db;
    }
    
    private function error($message){
      throw new Exception($message);
    }
    
    public function create(array $post){
    	
      $param = array('name', 'author_id', 'price');
      $add = array();
      foreach($param as $val){
        if(!empty($post[$val])){
          $add[':'.$val] = trim($post[$val]);
        }else{
          $this->error('Отсутствует значение: '.$val);
        }
      }
    
      $stmt = $this->db->prepare("INSERT INTO `book` (`date_add`, `name`, `author_id`, `price`) VALUE (NOW(), :name, :author_id, :price)");
      return $stmt->execute($add);
    }
    
    public function update(array $post){
      if(empty($post['id']) && !is_numeric($post['id'])){
        $this->error('empty ID');
      }
      $e= array();
      $param = array('id', 'name', 'author_id', 'price');
      foreach($param as $val){
        //...
      }
    	
      $stmt = $this->db->prepare("UPDATE `book` SET ........ WHERE `id` = :id");
      return $stmt->execute($e);
    }
    
    public function delete($id){
      $stmt = $this->db->prepare("DELETE FROM `book` WHERE `id` = ?");
      return $stmt->execute(array($id));
    }
    
    private function select(array $param){
    	
      $where = array();
      $z = array();
    	
      if(!empty($param['id'])){
        $where[] = "`id` = :id";
        $z[':user'] = $param['author_id'];
      }
      
      if(!empty($param['author_id'])){
        $where[] = "`author_id` = :author_id";
        $z[':author_id'] = $param['author_id'];
      }
    	
      $query = "SELECT * FROM `book`";
      if(!empty($where)){
        $query .= " WHERE ".implode(' AND ', $where);
      }
    	
      $stmt = $this->db->prepare($query);
      $stmt->execute($z);
      return $stmt->fetchAll();
    }
    
    public function showAll(){
      return $this->select(array());
    }
    
    public function showOne($id){
      return $this->select(array('id' => $id));
    }
    
    }
    
    
    class Book2 extends Book{
    
    public function showOnlyAuthor($id){
      return $this->select(array('author_id' => $id));
    }
    
    }


    Парни, пожалуйста, укажите грубые ошибки. Если ни есть :)
    Кстати я расширил класс.