<?php
/*
	static::$dop_sql - строка, например сортировки
	static::$index   - имя поля, которое считать индексом для массива static::$all
*/

trait LoadAllTable {
	static $all = false;

	static function loads(){
		if(!static::$all){
			$all = static::load('',isset(static::$dop_sql) ? static::$dop_sql : '');
			
			if(!isset(static::$index))
				static::$all = $all;
			else {
				static::$all = [];
				foreach ($all as $row) 
					static::$all[$row->{static::$index}] = $row;
			}
		}
		return static::$all;
	}

	static function oneById($id){
		if(!static::$all) static::loads();
		foreach (static::$all as $row)
			if($row->id == $id)
				return $row;
		return false;
	}

	static function gets($index){
		if(!static::$all)
			static::loads();
		return isset(static::$all[$index]) ? static::$all[$index] : false;
	}
}