** estou tentando implantar a condição between, e vejo que a ideia de eliminar a classe tabela está atrapalhando **
O Laravel tem uma pasta chamada Model e dentro dela tem um arquivo para cada tabela na forma de classe.
No projeto semiLaravel eu só trabalho no diretório raiz e pensei em eliminar a classe que representa a tabela, passando a tarefa de criar a classe tabela para o autoload, conforme a necessidade do código. Eu não sou capaz de criar um código desse tipo, mas o Copilot sim:
** o grande efeito colateral é a tela do VS Code, ele sempre vai reclamar que a classe tabela não existe **
listagem parcial do config.php
<?php
spl_autoload_register(function($class){
$path = str_replace('\\', DIRECTORY_SEPARATOR, strtolower($class)).'.php';if(file_exists($path)){require $path;}else{eval("class $class extends bd {}");}});class bd {privatestatic $pdo;privatestatic $initialized =false;privatestatic $orderBy ='';privatestatic $groupBy ='';// Adicionando a variável para a cláusula GROUP BYstaticfunction initialize(){if(!self::$initialized){
$dsn ='mysql:host='. HOST .';dbname='. DBNAME;self::$pdo =new PDO($dsn, USER, PASSWORD);self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);self::$initialized =true;}}protectedstaticfunction getPdo(){self::initialize();returnself::$pdo;}protectedstaticfunction getTableName(){return strtolower((new \ReflectionClass(static::class))->getShortName());}publicstaticfunction orderBy($column, $direction ='ASC'){self::$orderBy ="ORDER BY $column $direction";returnnewstatic;}// Adicionando o método groupBypublicstaticfunction groupBy($columns){if(is_array($columns)){
$columns = implode(', ', $columns);}self::$groupBy ="GROUP BY $columns";returnnewstatic;}publicstaticfunctionselect($columns ='*', $conditions =[]){self::initialize();
$table =static::getTableName();if(is_array($columns)){
$columns = implode(', ', $columns);}
$whereClause ='';if(!empty($conditions)){foreach($conditions as $condition){
$field = $condition[0];
$operator = $condition[1];
$value = $condition[2];
$whereClause .="$field $operator :$field AND ";}
$whereClause ='WHERE '. rtrim($whereClause,' AND ');}
$sql ="SELECT $columns FROM $table $whereClause";if(self::$groupBy){
$sql .=' '.self::$groupBy;self::$groupBy ='';// Reset groupBy after use}if(self::$orderBy){
$sql .=' '.self::$orderBy;self::$orderBy ='';// Reset orderBy after use}
$stmt =self::getPdo()->prepare($sql);if(!empty($conditions)){foreach($conditions as $condition){
$field = $condition[0];
$value = $condition[2];
$stmt->bindValue(":$field", $value);}}
$stmt->execute();return $stmt->fetchAll(PDO::FETCH_OBJ);}}
Pergunta
Frank K Hosaka
** estou tentando implantar a condição between, e vejo que a ideia de eliminar a classe tabela está atrapalhando **
O Laravel tem uma pasta chamada Model e dentro dela tem um arquivo para cada tabela na forma de classe.
No projeto semiLaravel eu só trabalho no diretório raiz e pensei em eliminar a classe que representa a tabela, passando a tarefa de criar a classe tabela para o autoload, conforme a necessidade do código. Eu não sou capaz de criar um código desse tipo, mas o Copilot sim:
** o grande efeito colateral é a tela do VS Code, ele sempre vai reclamar que a classe tabela não existe **
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.