geshner
765
15
Laravel

Laravel is really that slow?

Posted 2 years ago by geshner

Hi, I made a REST API using laravel, and when I tested it I got the variation of 1 to 6 seconds per request. I already did the artisan, route:cahe, config:cache and optimize --force. Yester it took 2hours and 40 minutes to do 5574 put requests, Can anyone help me?

here is the code:

<?php
    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Validator;
    use App\Http\Requests;
    use App\Http\Controllers\Controller;
    use App\Support\Formatador\FormatadorCidade;
    use App\Models\Cidade;
    use App\Models\Contrato;
    use Log;

    class CidadeController extends Controller {

        protected $formatador;

        function __construct(FormatadorCidade $formatador){
            $this->formatador = $formatador;
        }

        private function regras(Request $req, Contrato $con){
            switch ($req->method()) {
                case 'POST':
                    return [
                        'codigo' => 'required|integer|unique:TBAPICIDADE,CIDADE_ID,NULL,ID,ID_CONTRATO,'.$con-      >ID.',deleted_at,NULL',
                        'nome' => 'required|string|max:40',
                        'estado' => 'required|string|max:2|exists:TBAPIESTADO,SIGLA'
                    ];
                break;

                case 'PUT':
                    return [
                        'nome' => 'required|string|unique:TBAPICIDADE,NOME,NULL,ID,ID_CONTRATO,'.$con->ID,
                        'estado' => 'exists:TBAPIESTADO,SIGLA'
                    ];
                break;
            }
        }

        public function index(Request $request){...}
        public function store(Request $request){...}
        public function update(Request $request, $id){
            $contrato = $this->getContratoPeloToken();
            $validador = validator::make($request->all(), $this->regras($request, $contrato));
            if ($validador->fails()){
                return $this->respostaConflito($validador->errors()->all());
            }
            $cidade = $contrato->cidades()->whereCidadeId($id)->with('estado');
            if (!$cidade->exists()){
                return $this->respostaNaoEncontrado();
            }   
            $cidade->first();
            $cidade->NOME = $request->nome;
            if ($request->has('estado') && ($cidade->estado->SIGLA != $request->estado)) {
                $cidade->estado()->associate(\App\Models\Estado::whereSigla($request->estado)->first()->ID);
            }
            $cidade->save();
            return $this->respostaComSucesso('Cidade atualizado com sucesso!'); 
        }
        public function multipleUpdate(Request $req){...}
    }
?>

Please sign in or create an account to participate in this conversation.