apriolo / buscador-cursos
用于在Alura网站上搜索课程的项目
Requires
- guzzlehttp/guzzle: ^7.3
- symfony/css-selector: ^5.2
- symfony/dom-crawler: ^4.2
Requires (Dev)
- phan/phan: ^4.0
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
This package is auto-updated.
Last update: 2024-09-25 03:55:01 UTC
README
作为测试,我们创建了一个用于爬取Alura网站PHP课程的项目
使用了以下工具:Docker和Compose,用于创建包含php的Docker环境,使用Compose来管理Docker容器,在此例中仅使用了1个带有php的容器。- docker-compose build(下载镜像依赖)- docker-compose up -d(构建镜像并启动容器)在Compose中使用了版本3。创建的服务包括PHP Dockerfile-php,使用php:fpm-stratch镜像(镜像:版本),安装了一些工具,包括git、zlib1g、libxml2、libzip、mysqli。安装composer以管理项目。使用curl获取composer安装程序,然后将composer.phar文件移动到容器中的composer目录。定义WORKDIR为容器内的/var/www。卷是项目将被复制和使用的Docker容器中的位置。在此项目中使用了".:/var/www/composerTest"。网络是容器之间的内部通信网络,通过它们进行通信,用容器名代替IP地址。网络:- symfony
Composer - PHP依赖关系管理器
使用composer require,我们可以将Packagist上存在的依赖项添加到项目中,例如,我们添加了一些:phpunit、phpcs以添加到项目中"composer require distribuidor/dependencias"示例 > "composer require guzzlehttp/guzzle"或可以在composer.json文件中添加依赖项到require索引中EX "require": { "guzzlehttp/guzzle": "^7.3", "symfony/dom-crawler": "^4.2", "symfony/css-selector": "^5.2" }如果依赖项仅用于开发环境,则使用composer require --dev标签或composer.json中的"require-dev": { "phpunit/phpunit": "^9.5", "squizlabs/php_codesniffer": "^3.6", "phan/phan": "^4.0" }
我们看到了autoload,为了简化Composer中类的导入,我们有选项导入重要的函数文件,这些函数可以在项目的任何地方使用"autoload": { "files": [ "./functions.php" ] }导入不符合PSR4命名空间定义的类
"autoload": { "files": [ "./functions.php" ], "classmap": [ "./Teste.php" ] }使用符合PSR4命名空间的类作为项目中的命名空间"autoload": { "files": [ "./functions.php" ], "classmap": [ "./Teste.php" ], "psr-4": { "Alura\BuscadorDeCursos\" : "src/" } }
在课程中,我们使用了一些测试依赖及其配置,创建了脚本以使用这些依赖项。 - phpunit - phpcs - phan 创建了脚本以直接使用composer执行工具"scripts": { "test": "phpunit tests/TestBuscadorDeCursos.php", "cs" : "phpcs --standard=PSR12 src/", "phan" : "phan --allow-polyfill-parser", }为了方便,我们创建了一个一次性执行所有脚本的脚本"scripts": { "test": "phpunit tests/TestBuscadorDeCursos.php", "cs" : "phpcs --standard=PSR12 src/", "phan" : "phan --allow-polyfill-parser", "check" : [ "@phan", "@cs", "@test" ] }也可以在Composer事件之后执行脚本,例如,在composer update后执行check"scripts": { "test": "phpunit tests/TestBuscadorDeCursos.php", "cs" : "phpcs --standard=PSR12 src/", "phan" : "phan --allow-polyfill-parser", "check" : [ "@phan", "@cs", "@test" ], "post-update-cmd": [ "teste" ] }