Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fernando Rotermund

Criando um framework PHP reutilizando Libs conhecidas

Recommended Posts

Srs, em minha busca de um framework em PHP eu me deparei com muitas barreiras:

 

- Host compartilhado com versão do PHP que o framework não suporta;
- Frameworks lentos;
- Sistemas de rotas ou ORMs lentos;
- OOP indigestíveis e feias;

 

Testei o Laravel em um host compartilhado que não me agradou (lento). Meus clientes não estão preparados para pagar um Cloud. E agora na versão 5.1 do Laravel são poucos hots com o PHP 5.5.

 

O CodeIgniter apesar de ser rápido, sua OOP é um pouco indigesta e feia, odeio como ele instância as Models e aqueles underlines nos nomes dos métodos e classes

 

O Yii2 eu ainda estou testando, mas me incomoda um pouco aquele monte de Arrays para configurar algo e sua estrutura de diretórios é bem chata, a do Laravel é melhor e mais direta. Ainda não sei se vale a pena utilizar Yii.

Minha escolha por um framework virou uma novela pois eu gostaria de um que fosse gostoso de programar como o Laravel, tivesse a velocidade do CodeIgniter.

 

Como conheço o PHP desta versão 3, sempre criei meus frameworks, mas hoje eu gostaria de algo que o mercado absorvesse melhor, e criar mais um framework com tantos por ai, seria como reinventar a roda.

 

Foi ai que tive a ideia de simplesmente pegar códigos de bibliotecas conhecidas (e são muuuitas) e criar um framework ao meu gosto, reutilizando Libs de Rotas, templates, cache, acesso a dados (ORM), validação e etc. Com isso as empresas para qual eu presto serviço teriam algo mais solido e de fácil manutenção (já que as libs são testadas e possuem manual de utilização, tipo o Slim com o ORM Doctrine ou o Idiorm).

 

Gostaria de saber se alguém já fez isso? E opiniões são bem vindas?

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

VPS está aí. Digital Ocean, AWS, Rackspace... tudo barato e de qualidade. Configura do jeito que quiser, com a versão do PHP que bem entender

 

Se quiser flexibilidade, um host compartilhado não é uma boa opção. Eles se interessam a atender à maioria, que só precisa de um PHP simples (tem host aí usando PHP 5.2 ainda) e um mysql qualquer.

 

Fazer o próprio framework é bom pra aprender bem PHP. Mas a longo prazo ele pode ficar obsoleto, pois só terá você para manter e atualizar o projeto. Para sistemas grandes, acho melhor usar um framework que tenha a contribuição da comunidade.

O Laravel 5.1 é LTS. Você ficará tempos sem se preocupar com major updates

Compartilhar este post


Link para o post
Compartilhar em outros sites

VPS está aí. Digital Ocean, AWS, Rackspace... tudo barato e de qualidade. Configura do jeito que quiser, com a versão do PHP que bem entender

 

Se quiser flexibilidade, um host compartilhado não é uma boa opção. Eles se interessam a atender à maioria, que só precisa de um PHP simples (tem host aí usando PHP 5.2 ainda) e um mysql qualquer.

 

Fazer o próprio framework é bom pra aprender bem PHP. Mas a longo prazo ele pode ficar obsoleto, pois só terá você para manter e atualizar o projeto. Para sistemas grandes, acho melhor usar um framework que tenha a contribuição da comunidade.

O Laravel 5.1 é LTS. Você ficará tempos sem se preocupar com major updates

 

Como eu disse, meus clientes estão em compartilhados e para eles isso já é o suficiente, os projetos são pequenos.

 

Usar uma VPS exigiria que eles me pagasem um R$ mensam para que eu gerencie toda infra.

 

Eu citei que não estou fazendo meu framework do zero, eu estou utilizando Libs conhecidas e quando elas forem subindo de versão minha framework estaria sempre atualizada tabem.

 

Eu dei uma boa olhada no código do Laravel, e adivinha, quase tudo nele é código de terceiros, o Taylor Otwell (criador do laravel) só juntou as Libs de uma forma facil e inteligente.

 

Gosto muito do Laravel ele me agrada muito mas achei lento para fazer pequenas coisas como CMS e APP menores rodando em server compartilhados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe!

Apesar que você possui Know-how muito amplo, mas pensa como Freelancer, se tem uma carteira de clientes, e ainda quer coloca-las em hosts compartilhados qualquer, está deixando dinheiro na mesa, Beraldo já disse no post #5 o que realmente você precisa, existe lá fora hosts com suporte a php 5.6.X a partir de $1.99

Eu particularmente contrataria um Cloud a partir de $5, e começava um negócio lucrativo e não me preocuparia em criar outro Framework.

 

Ai você fala, mais $5 mês é muita grana, ok comece de graça!

 

http://aws.amazon.com/pt/free/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe!

 

Apesar que você possui Know-how muito amplo, mas pensa como Freelancer, se tem uma carteira de clientes, e ainda quer coloca-las em hosts compartilhados qualquer, está deixando dinheiro na mesa, Beraldo já disse no post #5 o que realmente você precisa, existe lá fora hosts com suporte a php 5.6.X a partir de $1.99

 

Eu particularmente contrataria um Cloud a partir de $5, e começava um negócio lucrativo e não me preocuparia em criar outro Framework.

 

Ai você fala, mais $5 mês é muita grana, ok comece de graça!

 

http://aws.amazon.com/pt/free/

 

 

Willians eu concordo plenamente com você tb acho perda de tempo criar um framework. Mas no meu caso, sim eu sou um freelancer que atente várias empresas, e estas empresas já possuem seus clientes espalhados por ai em tudo quanto é host (hosts bons e outros ruins), e muitos clientes não querem migrar de seus hots porque gostam do atendimento ou tem medo de perderem os emais que estão todos em web mail. Eu já bati de frente com muitas empresas e clientes para tentar reverter a questão da hospedagem e fazer algo melhor, mas em muitos casos o cliente bate o pe e não quer migrar.

 

Em fim, a realidade que eu estou expondo é de 80% de muitos programadores por ai.

 

Mas o que eu estou tentando dizer desde o inicio não é sobre o Host, apesar do PHP depender disso, mas de frameworks que não rodam em Host compartilhado por causa da versão do PHP ou por causa de velocidade, e mesmo com cache de html no front o back end ainda seria lento.

 

O que eu estou tentando perguntar aqui, é até onde é viavel criar algo parecido do que o Alisson expos no 2 post, que é criar um framework com infra extrutura de outros, neste caso eu utilizaria as Libs mais rapidas e na versão que eu precisasse do PHP, criando assim um outro framework com componentes, e classes de outros.

 

Eu até utilizaria o Laravel 5 ou 4 que roda na maioria das hospedagems já que utiliza o PHP 5.4. Mas eu não acho profissional tentar empurrar ele em host compartilhado.

 

Eu já vi muita gente lá fora utiliza o microframework Slim e o Idiorm (um orm extreamente rapido e descente) para criar um framework MVC e utilizar isso em projetos com CMS e Ecommerces.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você quer fazer é possível tecnicamente? Sim! É viável do ponto de vista do bom senso? Depende da sua capacidade de manter... já vi uma centena de fw nascerem das premissas que você citou e não vi nenhum de fato durar muito. Eu particularmente não iria por este caminho, preferiria usar um fw "de prateleira" que já tenha uma comunidade e que eu tivesse certeza que:

1 - Atende as minhas necessidades;

2 - Terá um ciclo de vida longo o suficiente.

 

Enfim, este é apenas um dos vários pontos de vista possíveis.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, me permita tirar uma dúvida com os amigos.

      Tenho um Formulário onde o Usuário digita todos os Dados necessários.

      Minha dúvida:
      --> como faço após o usuário digitar os dados e salvar, o Sistema chamar uma Modal ou mensagem perguntando se deseja imprimir agora ?

      Grato,
       
      Cesar
    • Por Carcleo
      Tenho uma abela de usuarios e uma tabela de administradores e clientes.
      Gostaria de uma ajuda para implementar um cadastro
       
      users -> name, login, passord (pronta) admins -> user_id, registratiom, etc.. client -> user_id, registratiom, etc...
      Queria ajuda para extender de user as classes Admin e Client
      Olhem como estáAdmin
      <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Admin extends User {     use HasFactory;            protected $fillable = [         'name',         'email',         'password',         'registration'     ];      private string $registration;     public function create(         string $name,          string $email,          string $password,         string $registration     )     {         //parent::create(['name'=>$name, 'email'=>$email, 'password'=>$password]);         parent::$name = $name;         parent::$email = $email;         parent::$password = $password;         $this->registration = $registration;     } } User
      <?php namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class User extends Authenticatable {     /** @use HasFactory<\Database\Factories\UserFactory> */     use HasFactory, Notifiable;     static string $name;     static string $email;     static string $password;     /**      * The attributes that are mass assignable.      *      * @var list<string>      */     protected $fillable = [         'name',         'email',         'password',     ];          /**      * The attributes that should be hidden for serialization.      *      * @var list<string>      */     protected $hidden = [         'remember_token',     ];     /**      * Get the attributes that should be cast.      *      * @return array<string, string>      */     protected function casts(): array     {         return [             'email_verified_at' => 'datetime',             'password' => 'hashed',         ];     }          public function roles() : BelongsToMany {         return $this->belongsToMany(Role::class);     }       public function hasHole(Array $roleName): bool     {                 foreach ($this->roles as $role) {             if ($role->name === $roleName) {                 return true;             }         }         return false;     }         public function hasHoles(Array $rolesName): bool     {                 foreach ($this->roles as $role) {             foreach ($rolesName as $rolee) {             if ($role->name === $rolee) {                 return true;             }          }         }         return false;     }         public function hasAbility(string $ability): bool     {         foreach ($this->roles as $role) {             if ($role->abilities->contains('name', $ability)) {                 return true;             }         }         return false;     }     } Como gravar um Admin na tabela admins sendo que ele é um User por extensão?
      Tentei assim mas é claro que está errado...
      public function store(Request $request, Admin $adminModel) {         $dados = $request->validate([             "name" => "required",             "email" => "required|email",             "password" => "required",             "registration" => "required"         ]);         $dados["password"] =  Hash::make($dados["password"]);                  $admin = Admin::where("registration",  $dados["registration"])->first();                  if ($admin)              return                    redirect()->route("admin.new")                             ->withErrors([                                 'fail' => 'Administrador já cadastrados<br>, favor verificar!'                   ]);                            $newAdmin = $adminModel->create(                                    $dados['name'],                                    $dados['email'],                                    $dados['password'],                                    $dados['registration']                                 );         dd($newAdmin);         $adminModel->save();         //$adminModel::create($admin);                  return redirect()->route("admin.new")->with("success",'Cadastrado com sucesso');     }  
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de tirar uma dúvida com os amigos, referente a PDV.
       
      Estou escrevendo um Sistema com Ponto de Vendas, a minha dúvida é o seguinte, referente ao procedimento mais correto.

      Conforme o caixa vai efetuando a venda, o Sistema de PDV já realiza:
      a baixa direto dos produtos no estoque
      ou
      somente após concretizar a venda o sistema baixa os produtos do estoque ?
       
      Grato,
       
      Cesar
       
    • Por violin101
      Caros amigos do grupo, saudações e um feliz 2025.
       
      Estou com uma pequena dúvida referente a Teclas de Atalho.

      Quando o Caps Lock está ativado o Comando da Tecla de Atalho não funciona.
      ou seja:
      se estiver para letra minúscula ====> funciona
      se estiver para letra maiúscula ====> não funciona
       
      Como consigo evitar essa falha, tanto para Letra Maiúscula quanto Minúscula ?

      o Código está assim:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'r' ) return;// Não é Ctrl+r, portanto interrompemos o script evt.preventDefault(); });  
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.