O LazyMephp é uma estrutura pequena e fácil de aprender/usar que eu uso há algum tempo, com sucesso, e isso tem alguns recursos interessantes:
A idéia por trás do LazyMephp é me permitir ser preguiçoso; portanto, para ajudar nessa tarefa, ela só precisa ter um banco de dados adequado configurado, com suas tabelas e relações entre elas.
A única limitação é que você realmente precisa ter uma chave primária em cada tabela.
Se a estrutura do banco de dados precisar ser alterada (colunas adicionadas/removidas, qualquer coisa), você sempre poderá regenerar todo o código (com algumas precauções).
git clone https://github.com/Peixinho/LazyMePHP myAwesomeProject
#optional, but I advise to start your own git repository, for many reasons...
cd myAwesomeProject && rm -rf .git
cd src/Ext
composer update (to get dependencies)
# run initial config
php LazyMePHP config
Agora ele executará o configurador inicial na linha de comando, onde você deve preencher os seguintes itens:
Em seguida, você pode correr
php LazyMePHP build
Se você estiver executando essa ferramenta após a geração inicial e fez alterações nos formulários, API ou classes gerados (você não deve alterar suas classes geradas de qualquer maneira), suas alterações podem ser perdidas, essa ferramenta será baseada na tabela; portanto, se você alterou algum formulário de tabela ou API específica, não a selecione.
Depois disso, você terá uma lista de suas tabelas de banco de dados, onde poderá selecionar o que construir e algumas outras opções: - D : Altera os descritores da tabela - C : Construir classes - F : construir formulários - a : construir API - e : Ativar logar após isso, ele se separará (14. É o mesmo para todas as classes, formas e API.
Se tudo correr bem, você terá um índice de trabalho com alguma funcionalidade básica.
php LazyMePHP serve
e navegar para
http://localhost:8080
| Usuário |
|---|
| pk id |
| fk countryid |
| Nome |
| Idade |
| País |
|---|
| PK countryid |
| Countryname |
tendo pk country.countryid -> fk user.countryid
Cada tabela gerada terá um formulário que funcione da seguinte forma:
## Classes
Every table generated will have a class that works as follows:
- Each Table will have a Class File by default in /src/Classes/[Table Name].php
- All Classes will be in namespace LazyMePHPClasses
- All Class columns have getters and setters *Get*[Column Name], *Set*[Column Name]
- All Classes have Save method, if Id is provided when constructing object:
```
$user = new User(); $user->Save(); // Will act as an INSERT
...
$user = new User(123); $user->Save(); // Will act as an UPDATE
```
-All classes have a Delete method, if id was provided upon constructing object
- Foreign members can be built automatically
```
// Country
$pt = new LazyMePHPClassesCountry();
$pt->SetCountryName('Portugal');
$pt->Save();
// User
$user = new LazyMePHPClassesUser();
$user->SetName('Peter');
$user->SetAge('30');
$user->SetCountryId($pt->Getid());
$user->Save();
echo $user->GetId(); // e.g. 123 - id is the primary key in User Table
// Retrieving user data and changing it
$user = new LazyMePHPClassesUser(123);
echo $user->GetName(); // 'Peter'
$user->Setname('John');
$user->Save();
// Access Foreign members by uing Get[Column Name]Object
echo $user->GetCountryIdObject()->GetCountryName();
// And changing it
$user->GetCountryIdObject()->SetCountry('England'); // Of course, you are changing Country Name in Country Table
$user->GetCountryIdObject()->Save();
# Not building Foreign members
$user = new LazyMePHPClassesUser(5, false); // this won't query foreign tables
```
- Every class will have a *table*_list class, that allows you to select a list of that class type
- Every List have a *FindBy*[Foreign Column Name], *FindBy*[Foreign Column Name]*Like*, *OrderBy*[Foreign Column name], *GroupBy*[Foreign Column], *Limit*
```
$users = new LazyMePHPClassesUser_List();
$users->FindByNameLike('John');
$users->OrderByAge();
// As in regular classes, you can or not build foreign tables, by default is building them
foreach($users->GetList() as $u) { echo $u->GetName(); echo $u->GetCountryIdObject()->GetCountryName(); }
// Not building foreign members
foreach($users->GetList(false) as $u) ...
```
## API
Every table generated will have some routes created in src/api/RouteAPI.php, and they make use of the controllers of each table
- Accessible from /api/[Table Name]/ (.htaccess for apache, didnt bother with others)
http: // localhost: 8080/api/user/ # produzirá informações de todos os usuários no formato json
http: // localhost: 8080/api/user/? findbynamelike = John & limite = 10 # produzirá todas as informações dos usuários no formato JSON que corresponde aos critérios e limites para 10
http: // localhost: 8080/api/user/123 # produzirá informações do usuário 123 no formato json
sim, isso é verdade! No entanto, você pode configurá -lo para expor apenas as colunas desejadas (tudo por padrão) editando o arquivo
/api/src/RouteAPI.php
Isso é gerado pelos utilitários. Para cada tabela, uma matriz de colunas é criada e codificada nesse arquivo, e se o nome da coluna estiver presente dentro dessa matriz, os dados serão expostos, caso contrário, não são mostrados e, BTW, a segurança não é uma responsabilidade do LazyMephp.
Quando esta opção estiver ativada, 3 tabelas são adicionadas ao seu banco de dados que registrarão todas as alterações feitas no banco de dados. A única configuração que é necessária a ser feita é editar
/src/Configuration/Configurations.php
e definir qual é a autenticação do usuário a ser registrado como o proprietário da mudança no banco de dados
// ACTIVITY LOG
$CONFIG['APP_ACTIVITY_LOG']=1;
$CONFIG['APP_ACTIVITY_AUTH']=$_SESSION['user_logged'];
O visualizador está abaixo /registro e mostra a lista de solicitações solicitadas por data des Desc, e existem alguns filtros que podem ser usados. Este não é um espectador completo, você pode vê -lo como um exemplo para expandir (mas funciona muito bem)
Mit