Sup, mér fannst vanta smá líf í þetta áhugamál.
Hérna fyrir neðan getið þið séð klasa sem ég hef verið að nota mikið til að einfalda mér lífið þegar ég forrita vefsíður í Codeigniter.
Hérna fyrir neðan getið þið séð klasa sem ég hef verið að nota mikið til að einfalda mér lífið þegar ég forrita vefsíður í Codeigniter.
<?php /** * EModel * @author Egill Thorlaksson <eth@lanmot.is> * @desc Wrapper class to be extended by classes instead of CI_Model. * * Þessi class er notaður til að einfalda aðgerðir sem maður væri * annars alltaf að skrifa ítrekað. */ class EModel extends CI_Model { /** * Smiðurinn tekur við tveimur færibreytum, annarsvegar $id og svo $column * ef $id er tómt þá gerir smiðurinn ekkert, annars sækir hann röð úr * töflunni miðað við þær færibreytur sem honum eru færðar. * * @param int $id * @param str $column * @return void */ public function __construct($id = NULL, $column = 'id') { if (is_numeric($id)) { $this->findById($id, $column); } elseif (!empty($id)) { $this->findBySlug($id, $column); } // Codeignter ætlast til þess að maður keyri þetta parent::__construct(); } /** * Þetta function er notað til að skrá nýjar raðir eða uppfæra raðir. * Ef að $update er satt þá er uppfært annars er gert ráð fyrir að þetta sé * ný röð og henni bætt við í töfluna. * * @param bool $update * @return void */ public function save($update = false) { foreach ($this->listFields() as $key => $field) { if(isset($this->$field)) { $data[$field] = $this->$field; } } if ($update) { $this->db->update($this->table, $data, array('id' => $this->result_set[0]->id)); $this->feedback($data, true); } else { $this->db->insert($this->table, $data); $this->id = $this->db->insert_id(); } } /** * Finna röð út frá $slug og $column * * @param str $slug * @param str $column * @return void */ public function findBySlug($slug, $column) { $result = $this->db->get_where($this->table, array($column => $slug)); $this->result_set = $result->result(); } /** * Finna allar raðir á núverandi object. * @param mixed $config * * array( * where [key => value] * order [by => value, direction => value] * ); * * Ef $config er autt þá eru allar raðir sóttar * en hægt er að skilgreina nánar hvaða raðir á að sækja. * * @return <stdClass> */ public function findAll($config = NULL, $limit = NULL) { if(is_array($config['order'])) { $this->db->order_by($config['order']['by'], $config['order']['direction']); } if($limit !== NULL) { $this->db->limit($limit); } if(is_array($config['where'])) { $result = $this->db->get_where($this->table, array( $config['where']['key'] => $config['where']['value'], )); } else { $result = $this->db->get($this->table); } return $result->result(); } /** * Finna röð útfrá $id * * @param int $id * @param str $column * @return void */ public function findById($id, $column) { $result = $this->db->get_where($this->table, array($column => $id)); $this->result_set = $result->result(); } /** * Functionin hér fyrir neðan eru notuð til að sækja * upplýsingar um töflur eftir því sem á þarf að halda. */ protected function listFields() { return $this->db->list_fields($this->table); } protected function listFieldsData() { return $this->db->field_data($this->table); } protected function fieldData($field) { return $this->db->field_data($field); } }