<commit_before><?php
defined("_uniq_token_") or die('');

/**
* @author 	<NAME>
*/
abstract class Model extends ConnectionHandler {
	protected $db = null;

	/** 
	* @brief 	Liste des tables liées et des paramètres de jointure
	* @example 	
				* array(
				*	"resource" => array(
				*		"type" => "LEFT", 															// défaut LEFT
				*		"on"   => array("id_base" => "id_base", "id_player" => "id_player"),		// needed
				*		"on"   => "id_base", 														// alternative
				*		"field"=> array('name')														// défaut *
				*	)
				* )
	*
	* @note 	Cette variable NE DOIT PAS être modifiable par le client !
	*/
	protected $dependencies = array();
	

	public function __construct(){
		parent::__construct();
	}

	/**
	* Permet de vérifier si les données respectent le bon format avant d'être utilisées/insérées. La fonction check() est utilisée dans add() surtout.
	* @return 	Par défaut la fonction retourne vrai.
	* @note 	Cette fonction DEVRAIT être overridée par toutes les classes qui en héritent pour réduire les erreurs lors d'insertions SQL.
	* 			Un exemple parlant est implémenté dans le model 
	*/
	public function check($datas){
		return true;
	}


	#########
	#### FIND
	#########
	
	/**
	* Retourne $limit tuples correspondant à $params
	*/
	public function find(array $params, $limit = 1){
		$data = $this->_findJoin($params, $limit);
		if(isset($data) AND isset($data[0]) AND $limit == 1)
			return $data[0];
		else if($limit == 1)
			return null;
			
		return $data;
	}
	
	/**
	* Retourne tous les tuples correspondants à $params
	*/
	public function findAll(array $params = null){
		if(!is_null($params))
			return $this->_findJoin($params);
		
		$req = $this->db->query("SELECT * FROM ".$this->table);
		return $req->fetchAll();
	}

	/**
	* Retourne les tuples correspondants et leurs données jointes
	*/<commit_msg>Add limit clause to findAll()<commit_after><?php
defined("_uniq_token_") or die('');

/**
* @author 	<NAME>
*/
abstract class Model extends ConnectionHandler {
	protected $db = null;

	/** 
	* @brief 	Liste des tables liées et des paramètres de jointure
	* @example 	
				* array(
				*	"resource" => array(
				*		"type" => "LEFT", 															// défaut LEFT
				*		"on"   => array("id_base" => "id_base", "id_player" => "id_player"),		// needed
				*		"on"   => "id_base", 														// alternative
				*		"field"=> array('name')														// défaut *
				*	)
				* )
	*
	* @note 	Cette variable NE DOIT PAS être modifiable par le client !
	*/
	protected $dependencies = array();
	

	public function __construct(){
		parent::__construct();
	}

	/**
	* Permet de vérifier si les données respectent le bon format avant d'être utilisées/insérées. La fonction check() est utilisée dans add() surtout.
	* @return 	Par défaut la fonction retourne vrai.
	* @note 	Cette fonction DEVRAIT être overridée par toutes les classes qui en héritent pour réduire les erreurs lors d'insertions SQL.
	* 			Un exemple parlant est implémenté dans le model 
	*/
	public function check($datas){
		return true;
	}


	#########
	#### FIND
	#########
	
	/**
	* Retourne $limit tuples correspondant à $params
	*/
	public function find(array $params, $limit = 1){
		$data = $this->_findJoin($params, $limit);
		if(isset($data) AND isset($data[0]) AND $limit == 1)
			return $data[0];
		else if($limit == 1)
			return null;
			
		return $data;
	}
	
	/**
	* Retourne tous les tuples correspondants à $params
	*/
	public function findAll(array $params = null, $limit = 999999){
		if(!is_null($params))
			return $this->_findJoin($params, $limit);
		
		$req = $this->bdd->query("SELECT * FROM ".$this->table." LIMIT ".intval($limit));
		return $req->fetchAll();
	}

	/**
	* Retourne les tuples correspondants et leurs données jointes
	*/
{'fraction_non_alphanumeric': 0.1513140430050438, 'fraction_numerical': 0.004247411733474914, 'mean_word_length': 3.1001088139281827, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 31, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7608704', 'n_tokens_mistral': 1485, 'n_tokens_neox': 1299, 'n_words': 375}