Boa tarde pessoal,
Gostaria de compartilhar um CRUD especial

Este CRUD está em MVC tanto na parte do Ext JS quanto no PHP(nativo) e o melhor é que está utilizando classes abstratas
Procurei aplicar as melhores práticas possíveis, deixar o código mais enxuto/curto e prático possível, simplificando mas buscando abstrair ao máximo para obter produtividade no desenvolvimento.
Este foi feito em PHP, mas é claro, a parte do Ext JS pode ser aplicada perfeitamente para outras linguagens de backend, necessitando alterar somente as url's no AbstractProxy e pronto.
Características do CRUD:
- Versão free mais recente do Ext JS (4.1.1a)
- Acompanha scripts para empacotar o projeto para a produção
- Parte do PHP totalmente abstrata
- Parte do Ext JS totalmente abstrata
- Utilizando as melhores práticas possíveis recomendadas pela Sencha
- Layout amigável
- Acompanha menu, abertura dos módulos em abas
- Acompanha ux
Ext.ux.AlertSegue abaixo o exemplo de alguns códigos:
model(PHP)
<?php
require_once 'AbstractModel.php';
class Cliente extends AbstractModel{
public $table = 'cliente';
}
?>
controller(php)
<?php
require_once '../model/Cliente.php';
require_once 'AbstractController.php';
class ClienteController extends AbstractController {}
new ClienteController(new Cliente());
controller(Ext JS)
Ext.define('Simple.controller.Cliente', {
extend: 'Abstracts.Controller',
module: 'cliente',
models: ['Cliente'],
stores: ['Cliente'],
views : [
'cliente.Module',
'cliente.List',
'cliente.Form'
]
});
model (Ext JS)
Ext.define('Simple.model.Cliente', {
extend: 'Ext.data.Model',
proxy : {
type : 'abstractproxy',
module: 'cliente'
},
fields: [
{name: 'id', type: 'int'},
'nome',
'endereco'
]
});
store (Ext JS)
Ext.define('Simple.store.Cliente', {
extend: 'Ext.data.Store',
model : 'Simple.model.Cliente'
});
form (Ext JS)
Ext.define('Simple.view.cliente.Form', {
extend: 'Abstracts.Form',
alias : 'widget.clienteform',
items : [{
name : 'id',
fieldLabel: 'Id',
disabled : true
},{
name : 'nome',
fieldLabel: 'Nome',
maxLength : 100
},{
name : 'endereco',
fieldLabel: 'Endereco',
maxLength : 100
}]
});
list (Ext JS)
Ext.define('Simple.view.cliente.List', {
extend : 'Abstracts.List',
alias : 'widget.clientelist',
store : 'Cliente',
columns: [{
header : 'Id',
dataIndex: 'id'
},{
header : 'Nome',
dataIndex: 'nome'
},{
header : 'Endereco',
dataIndex: 'endereco'
}]
});
Achei interessante compartilhar isso para o pessoal olhar para o Ext JS com relação a produtividade e organização e de desempenho que pode se chegar com este fantástico framework e já ir buscando conhecimentos avançados dentro desta tecnologia.
Exemplo online:
http://policenosistemas.com.br/SimpleDownload:
http://www.4shared.com/get/XcGpciBI/Simple.htmlSugestões e melhorias são sempre muito bem vindas.
Abraços!