Overview

Namespaces

  • GLFramework
    • Cache
    • Controller
    • DaMa
      • Manipulators
    • Database
    • HTTP
    • Mail
    • Middleware
    • Model
    • Module
    • Tests
    • Upload
    • Utils
  • None

Classes

  • GLFramework\Bootstrap
  • GLFramework\Cache\Cache
  • GLFramework\Cache\MemcachedCache
  • GLFramework\Cache\MemoryCache
  • GLFramework\Controller
  • GLFramework\Controller\AdminController
  • GLFramework\Controller\APIController
  • GLFramework\Controller\AuthController
  • GLFramework\Controller\ErrorController
  • GLFramework\Controller\ExceptionController
  • GLFramework\DaMa\Association
  • GLFramework\DaMa\DataManipulation
  • GLFramework\DaMa\Manipulator
  • GLFramework\DaMa\Manipulators\CSVManipulator
  • GLFramework\DaMa\Manipulators\ManipulatorCore
  • GLFramework\DaMa\Manipulators\XLSManipulator
  • GLFramework\DaMa\Manipulators\XLSXManipulator
  • GLFramework\Database\Connection
  • GLFramework\Database\MySQLConnection
  • GLFramework\DatabaseManager
  • GLFramework\DBStructure
  • GLFramework\Events
  • GLFramework\Filesystem
  • GLFramework\HTTP\API
  • GLFramework\Log
  • GLFramework\Mail
  • GLFramework\Mail\Mail
  • GLFramework\Mail\MailSystem
  • GLFramework\Mail\PHPMailer
  • GLFramework\MailView
  • GLFramework\Middleware\APIAuthorizationMiddleware
  • GLFramework\Middleware\ControllerMiddleware
  • GLFramework\Model
  • GLFramework\Model\Page
  • GLFramework\Model\User
  • GLFramework\Model\UserPage
  • GLFramework\ModelResult
  • GLFramework\Module\Module
  • GLFramework\Module\ModuleManager
  • GLFramework\Request
  • GLFramework\Response
  • GLFramework\Tests\DatabaseTestCase
  • GLFramework\Tests\TestCase
  • GLFramework\Upload\Upload
  • GLFramework\Upload\Uploads
  • GLFramework\Utils\DataTablesManager
  • GLFramework\Versions
  • GLFramework\View

Interfaces

  • GLFramework\Middleware

Functions

  • array_merge_recursive_ex
  • e
  • file_get_php_classes
  • fix_date
  • fix_date_format
  • fix_decimal
  • fix_url
  • get
  • get_php_classes
  • http_response_code
  • instance_method
  • is_module_enabled
  • now
  • post
  • print_array
  • print_brief_debug
  • print_debug
  • random_str
  • reArrayFiles
  • reArrayPost
  • today
  • Overview
  • Namespace
  • Class
  1: <?php
  2: /**
  3:  * Created by PhpStorm.
  4:  * User: manus
  5:  * Date: 13/1/16
  6:  * Time: 21:07
  7:  */
  8: 
  9: namespace GLFramework;
 10: 
 11: 
 12: use Traversable;
 13: 
 14: class ModelResult implements \IteratorAggregate
 15: {
 16:     var $model_class;
 17:     var $models;
 18:     var $model;
 19: 
 20:     /**
 21:      * ModelResult constructor.
 22:      * @param $model_class
 23:      */
 24:     public function __construct($model_class)
 25:     {
 26:         $rf = new \ReflectionClass($model_class);
 27:         $this->model_class = $rf;
 28:     }
 29: 
 30: 
 31:     /**
 32:      * Obtiene el primer modelo disponible
 33:      * @return Model
 34:      */
 35:     public function getModel()
 36:     {
 37:         return $this->model_class->newInstance($this->model);
 38:     }
 39: 
 40:     /**
 41:      * @param null $size
 42:      * @return Model[]
 43:      * @deprecated
 44:      */
 45:     public function getModelsInstanced($size = null)
 46:     {
 47:         $instances = array();
 48:         if($size === null)
 49:         {
 50:             foreach($this->models as $model)
 51:             {
 52:                 $instances[] = $this->model_class->newInstance($model);
 53:             }
 54:         }
 55:         else
 56:         {
 57:             for($i = 0; $i < $size; $i++)
 58:             {
 59:                 if(isset($this->models[$i]))
 60:                 {
 61:                     $instances[] = $this->model_class->newInstance($this->models[$i]);
 62:                 }
 63:                 else
 64:                 {
 65:                     $instances[] = $this->model_class->newInstance();
 66:                 }
 67:             }
 68:         }
 69:         return $instances;
 70:     }
 71: 
 72:     /**
 73:      * Obtener una lista con los modelos disponibles
 74:      * @param null $size
 75:      * @return Model[]
 76:      */
 77:     public function getModels($size = null)
 78:     {
 79:         return $this->getModelsInstanced($size);
 80:     }
 81: 
 82:     /**
 83:      * Obtiene el modelo en la posicion $count
 84:      * @param $count
 85:      * @return null
 86:      */
 87:     public function offset($count)
 88:     {
 89:         if(count($this->models) < $count)
 90:         {
 91:             return $this->models[$count];
 92:         }
 93:         return null;
 94:     }
 95: 
 96:     /**
 97:      * Devuelve el numero de elementos devueltos
 98:      * @return int
 99:      */
100:     public function count()
101:     {
102:         return count($this->models);
103:     }
104: 
105:     /**
106:      * Obtiene el ultimo modelo de la lista
107:      * @return Model|null
108:      */
109:     public function last()
110:     {
111:         if($this->count())
112:         {
113:             $models = $this->getModels();
114:             return $models[$this->count() - 1];
115:         }
116:         return null;
117:     }
118: 
119:     /**
120:      * Genera una array lista para usar con json_encode
121:      * @return array
122:      */
123:     public function json()
124:     {
125:         $list = array();
126:         foreach($this->getModels() as $model)
127:         {
128:             $list[] = $model->json();
129:         }
130:         return $list;
131:     }
132: 
133:     /**
134:      * Devuelve la lista al reves
135:      * @param null $size
136:      * @return array
137:      */
138:     public function reverse($size = null)
139:     {
140:         return array_reverse($this->getModels($size));
141:     }
142: 
143:     /**
144:      * Ordena de menor a mayor en funcion del campo indicado
145:      * @param $field
146:      * @return $this
147:      */
148:     public function order($field)
149:     {
150:         usort($this->models, function($a, $b) use($field)
151:         {
152:             return $a[$field] - $b[$field];
153: 
154:         });
155:         return $this;
156:     }
157: 
158:     /**
159:      * Retrieve an external iterator
160:      * @link http://php.net/manual/en/iteratoraggregate.getiterator.php
161:      * @return Traversable An instance of an object implementing <b>Iterator</b> or
162:      * <b>Traversable</b>
163:      * @since 5.0.0
164:      */
165:     public function getIterator()
166:     {
167:         return new \ArrayIterator( $this->getModels());
168:     }
169: }
API documentation generated by ApiGen