Hirdetés
- Vivo X300 - kicsiben jobban megéri
- Örömkönnyek és üres kezek a TriFold startjánál
- Xiaomi 14T Pro - teljes a család?
- Megbüntették, ezért feloszlatná az EU-t Elon Musk
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Okosóra és okoskiegészítő topik
- Yettel topik
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Telekom mobilszolgáltatások
Új hozzászólás Aktív témák
-
válasz
Peter Kiss
#36
üzenetére
Ja, hogy így. Igen, amire a teszt használja arra tényleg az iterator aggregate való. Vagyis nem, még az is sok neki. Erre elég az ArrayObject. Full C, úgyhogy az még gyorsabb lesz.

-
válasz
Peter Kiss
#33
üzenetére
Mi volt a sebességteszt kódja? Én nagyon kíváncsi lennék rá, mivel egy IteratorAggregate azért jóval kevesebbet tud, mint egy igazi Iterátor. Én az Iterator interfészt arra szoktam használni, hogy külső forrásból kapott adatokat tudjak hatékonyan tömbként kezelni. Pl adatbázist.
-
modder
aktív tag
válasz
Peter Kiss
#10
üzenetére
Igazad van, a Kohana adatbázis apija egy undorító katyvasz
legalábbis nekem eddig ez jött le, plusz dokumentálatlan, és sokszor (amit a típustalanság miatt egyébként is probléma a tákolmány szar php-ban
) mást adnak vissza a függvények egy esetben, mint másik esetben bizonyos belső állapotoktól függően, például attól függően, hogy egy elemet várunk vagy többet, ugyanaz a függvény vagy egy objektumot ad vissza vagy egy iterátort... -
Sk8erPeter
nagyúr
válasz
Peter Kiss
#10
üzenetére
Ő, hát szerintem sem a legszebb.

-
Sk8erPeter
nagyúr
válasz
Peter Kiss
#8
üzenetére
"mi volt a tesztkörnyezet"
Itt eléggé pontatlan volt, amit írtam, mert nem csak a konfiguráció érdekelt volna, hanem a konkrét kód.A Kohanás kódra:
igazából abbahagytam a bemásolást, és nem raktam be azt, amit még kellett volna: a _load_result() függvényt:..............
/**
* Loads a database result, either as a new record for this model, or as
* an iterator for multiple rows.
*
* @chainable
* @param bool $multiple Return an iterator or load a single row
* @return ORM|Database_Result
*/
protected function _load_result($multiple = FALSE)
{
$this->_db_builder->from(array($this->_table_name, $this->_object_name));
if ($multiple === FALSE)
{
// Only fetch 1 record
$this->_db_builder->limit(1);
}
// Select all columns by default
$this->_db_builder->select($this->_object_name.'.*');
if ( ! isset($this->_db_applied['order_by']) AND ! empty($this->_sorting))
{
foreach ($this->_sorting as $column => $direction)
{
if (strpos($column, '.') === FALSE)
{
// Sorting column for use in JOINs
$column = $this->_object_name.'.'.$column;
}
$this->_db_builder->order_by($column, $direction);
}
}
if ($multiple === TRUE)
{
// Return database iterator casting to this object type
$result = $this->_db_builder->as_object(get_class($this))->execute($this->_db);
$this->reset();
return $result;
}
else
{
// Load the result as an associative array
$result = $this->_db_builder->as_assoc()->execute($this->_db);
$this->reset();
if ($result->count() === 1)
{
// Load object values
$this->_load_values($result->current());
}
else
{
// Clear the object, nothing was found
$this->clear();
}
return $this;
}
}
..... -
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 ORMNa 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
- AMD Ryzen 5600X/Radeon RX 6800 16GB/32GB DDR RAM/1TB SSD konfig eladó
- Bomba ár! Dell Latitude E7270 - i5-6GEN I 8GB I 256GB SSD I 12,5" HD I HDMI I CAM I W10 I Gari!
- Bomba ár! Dell Latitude 7490 - i7-8GEN I 16GB I 256SSD I 14" FHD Touch I HDMI I Cam I W11 I Gari!
- AMD 5 3600/GeForce RTX 3070/16GB DDR4 RAM/512GB SSD konfig eladó sok-sok garival
- Bomba ár! HP ProBook 445 G9 - Ryzen 5 5625U I 16GB I 512SSD I HDMI I 14" FHD I Cam I W11 I Gar
- Apple Magic Mouse A3204 (USB-C)
- Bomba ár! Asus X555LA - i3-4GEN I 4GB I 500GB I 15,6" HD I HDMI I Cam I W10 I Garancia!
- Shure Podcast mikrofon
- Újszerű Apple Macbook Air 13 - M2 - 8/256GB (MLY33MG/A) éjfekete - 24 Ciklus - 100% akkumulátor- HUN
- Vállalom telefonok,tabletek javítását ,(szoftveres hibát is,frp lock-ot is)márkától fügetlenűl
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest




