1
resposta

Comando vendor\bin\ com erro

Olá, boa tarde. Segui os passos do tutor, mas tenho um problema ao executar o comando para executar o buscador no prompt do Windows. Já realizei "composer update" e o problema persiste. Verifiquei que não foi criado nenhuma arquivo .bat (ou qualquer outro) dentro do diretório "vendor/bin/".

Comandos:

vendor/bin/BuscadorGeral.php
 php vendor/bin/BuscadorGeral.php
 vendor\bin\BuscadorGeral.php
 php vendor\bin\BuscadorGeral.php

Abaixo os códigos do projeto:

BuscadorGeral.php

#!/usr/bin/env php
<?php

namespace App\Buscador;

use Exception;
use GuzzleHttp\Client;
use GuzzleHttp\ClientInterface;
use GuzzleHttp\Exception\GuzzleException;
use Symfony\Component\DomCrawler\Crawler;
use Throwable;

class BuscadorGeral
{

    private $cliente;
    private $navegador;
    private string $html;

    //CRIANDO CLIENTE HTML E ACESSANDO URL 
    public function __construct(string $url)
    {
        $this->cliente = new Client([
            "base_uri" => $url,
            'verify' => false
        ]);
        $this->navegador = new Crawler();
    }

    <...>
}

composer.json:

{
  "name": "j.aguiar/buscador",
  "type": "library",
  "description": "Projeto teste 2 para encontrar cursos e notícias no banco de sites",
  "minimum-stability": "stable",
  "license": "proprietary",
  "authors": [
      {
        "name": "JM Costal Aguiar",
        "email": "jcostalaguiar@gmail.com"
      }
  ],
  "require": {
      "symfony/dom-crawler": "^5.2",
      "guzzlehttp/guzzle": "^7.2",
      "symfony/css-selector": "^5.2"
  },
  "require-dev": {
      "phpunit/phpunit": "^9.5",
      "squizlabs/php_codesniffer": "^3.5",
      "phan/phan": "^4.0.3"
  },
  "autoload": {
      "psr-4": {
          "App\\Buscador\\": "src/",
          "App\\Tests\\": "tests/"
      }
  },
  "scripts": {
      "cs": "phpcs --standard=PSR12 src/",
      "phan": "phan --allow-polyfill-parser",
      "test": "phpunit tests\\TestBuscadorDeCursos.php",
      "check": [
          "@cs",
          "@phan",
          "@test"
      ]
  },
  "scripts-descriptions": {
      "cs": "execute php
1 resposta

João, como o Composer colocaria essa classe dentro da pasta vendor\bin? Realmente faz sentido esse arquivo não existir.

O que eu fiz foi criar um pacote, disponibilizar no composer com o arquivo buscar-cursos.php na chave bin

Em outro pacote, quando eu instalar esse pacote que eu disponibilizei, o buscar-cursos.php vai estar disponível em vendor\bin.