Keresés

Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz Peter Kiss #6 üzenetére

    Attól még, mert írtál ORM-et (ami önmagában azért nem varázslat, még ha szopó feladat is lehet), egy másik framework miért ne működhetne másképp, mint ahogy Te megírtad?
    modder ismeri a Kohanát, dolgozott vele, arra alapozva mondja.
    Azt mondjuk nem értem, Te mire alapozva cáfoltad, hogy nem úgy működik, ahogy ő írta, ha ezek szerint meg sem nézted. :)

    Én nem ismerem a Kohanát, ezért vettem rá a fáradságot, hogy letöltsem a keretrendszert és megnézzem, mi lehet az igazság, itt van kimazsolázva az érintett kódrészlet:

    class Kohana_ORM extends Model implements serializable {

    //...................................................

    /**
    * Database query builder
    * @var Database_Query_Builder_Where
    */
    protected $_db_builder;

    //...................................................

    /**
    * Initializes the Database Builder to given query type
    *
    * @param integer $type Type of Database query
    * @return ORM
    */
    protected function _build($type)
    {
    // Construct new builder object based on query type
    switch ($type)
    {
    case Database::SELECT:
    $this->_db_builder = DB::select();
    break;
    case Database::UPDATE:
    $this->_db_builder = DB::update(array($this->_table_name, $this->_object_name));
    break;
    case Database::DELETE:
    $this->_db_builder = DB::delete(array($this->_table_name, $this->_object_name));
    }

    // Process pending database method calls
    foreach ($this->_db_pending as $method)
    {
    $name = $method['name'];
    $args = $method['args'];

    $this->_db_applied[$name] = $name;

    call_user_func_array(array($this->_db_builder, $name), $args);
    }

    return $this;
    }


    //...................................................

    /**
    * Finds multiple database rows and returns an iterator of the rows found.
    *
    * @return Database_Result
    */
    public function find_all()
    {
    if ($this->_loaded)
    throw new Kohana_Exception('Method find_all() cannot be called on loaded objects');

    if ( ! empty($this->_load_with))
    {
    foreach ($this->_load_with as $alias)
    {
    // Bind auto relationships
    $this->with($alias);
    }
    }

    $this->_build(Database::SELECT);

    return $this->_load_result(TRUE);
    }

    //...................................................

    } // End ORM

    Na most a többi érintett kódrészletet már nem másolgatom be, mert akkor kicsit hosszú lenne a hozzászólásom, de ami ebből is látható (meg a többi kódrészletből), az alátámasztani látszik azt, amit modder írt.

    ===

    (#5) : Ezek szerint addig nem jelenik meg a buborék, amíg meg nem jelenik az első hsz.? Hmm.
    A példára rátérve igazából arra lettem volna kíváncsi, hogyan tesztelted, ami miatt a sima Iterator interface implementációjával történő tesztelés elszállt futási idő túllépésével. Meglepő, ha ekkora a különbség, ilyen esetben meg azért nem árt tudni, mi volt a tesztkörnyezet, amiben ez teljesült.

Új hozzászólás Aktív témák

Hirdetés