- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我们使用 phing 来构建和测试我们的项目。我想尽可能地移除对 PEAR 的依赖,这样我就可以为不同的项目运行不同版本的包。我创建了一个 composer.json 文件,它安装了所有必要的包
{
"require": {
"php": ">=5.3.3",
"zendframework/zendframework": "2.2.*",
"doctrine/doctrine-orm-module": "*",
"phpoption/phpoption": "*"
},
"require-dev": {
"phing/phing": "*",
"phpunit/phpunit": "*",
"pdepend/pdepend": "*",
"phpmd/phpmd": "*",
"phploc/phploc": "*",
"phpdocumentor/phpdocumentor": "*",
"squizlabs/php_codesniffer": "*",
"mayflower/php-codebrowser": "*",
"sebastian/phpcpd": "*",
"zendframework/zftool": "dev-master",
"zendframework/zend-form": "*",
"hounddog/doctrine-data-fixture-module": "*",
"pear/console_commandline": "dev-trunk",
"pear/log": "dev-master",
"pear/pear_exception": "dev-master"
},
"config": {
"bin-dir": "vendor/bin/"
}
}
我有一个 phing build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="SolExactConnector" default="build">
<property name="basedir" value="." override="true"/>
<property name="source" value="${basedir}/module"/>
<fileset dir="${source}" id="sourceWithoutTests">
<include name="**/*.php"/>
<exclude name="*/test/"/>
<exclude name="*/Module.php"/>
<exclude name="*/config/module.config.php"/>
<exclude name="*/test/Bootstrap.php"/>
</fileset>
<fileset dir="${source}" id="sourceWithTests">
<include name="**/*.php"/>
<exclude name="*/Module.php"/>
<exclude name="*/config/module.config.php"/>
<exclude name="*/test/Bootstrap.php"/>
</fileset>
<fileset dir="${source}" id="tests">
<include name="*/test/**/*Test.php"/>
</fileset>
<target name="prepare" description="Clean up and create artifact directories">
<delete dir="${basedir}/build/api"/>
<delete dir="${basedir}/build/code-browser"/>
<delete dir="${basedir}/build/coverage"/>
<delete dir="${basedir}/build/logs"/>
<delete dir="${basedir}/build/pdepend"/>
<delete dir="${basedir}/build/docs"/>
<mkdir dir="${basedir}/build/api"/>
<mkdir dir="${basedir}/build/code-browser"/>
<mkdir dir="${basedir}/build/coverage"/>
<mkdir dir="${basedir}/build/logs"/>
<mkdir dir="${basedir}/build/pdepend"/>
<mkdir dir="${basedir}/build/docs"/>
</target>
<target name="phpunit" description="Run unit tests" depends="prepare">
<coverage-setup database="${basedir}/build/logs/coverage.db">
<fileset refid="sourceWithoutTests"/>
</coverage-setup>
<phpunit haltonfailure="true" haltonerror="true" printsummary="true" bootstrap="test/Bootstrap.php"
codecoverage="true">
<formatter todir="${basedir}/build/logs" type="clover" outfile="clover.xml"/>
<formatter todir="${basedir}/build/logs" type="xml" outfile="junit.xml"/>
<batchtest>
<fileset refid="tests"/>
</batchtest>
</phpunit>
</target>
<target name="lint" description="Perform syntax check of sourcecode files" depends="prepare">
<phplint haltonfailure="true" cachefile="${basedir}/build/logs/lint.cache">
<fileset refid="sourceWithTests"/>
</phplint>
</target>
<target name="pdepend" description="Generate jdepend.xml and software metrics charts using PHP_Depend"
depends="prepare">
<phpdepend file="${source}">
<logger type="jdepend-xml" outfile="${basedir}/build/logs/jdepend.xml"/>
<logger type="jdepend-chart" outfile="${basedir}/build/pdepend/dependencies.svg"/>
<logger type="overview-pyramid" outfile="${basedir}/build/pdepend/overview-pyramid.svg"/>
</phpdepend>
</target>
<target name="phpmd" description="Generate pmd.xml using PHPMD" depends="prepare">
<phpmd file="${source}">
<formatter type="xml" outfile="${basedir}/build/logs/pmd.xml"/>
</phpmd>
</target>
<target name="phpcpd" description="Generate pmd-cpd.xml using PHPCPD" depends="prepare">
<phpcpd>
<formatter type="pmd" outfile="${basedir}/build/logs/pmd-cpd.xml"/>
<fileset refid="sourceWithTests"/>
</phpcpd>
</target>
<target name="phploc" description="Generate phploc.xml" depends="prepare">
<phploc reportType="xml" reportName="phploc"
reportDirectory="${basedir}/build/logs">
<fileset refid="sourceWithTests"/>
</phploc>
</target>
<target name="phpcs" description="Generate checkstyle.xml using PHP_CodeSniffer" depends="prepare">
<phpcodesniffer
standard="PSR2"
showSniffs="true"
showWarnings="true">
<fileset refid="sourceWithTests"/>
<formatter type="default" usefile="false"/>
<formatter type="checkstyle" outfile="${basedir}/build/logs/checkstyle-codesniffer.xml"/>
</phpcodesniffer>
</target>
<target name="hphpa" description="HipHop's static analyzer" depends="prepare">
<exec executable="wget" checkreturn="true">
<arg line="https://phar.phpunit.de/hphpa.phar"/>
</exec>
<exec executable="php hphpa.phar" checkreturn="true">
<arg line="--checkstyle ${basedir}/build/logs/checkstyle-hphpa.xml"/>
<arg line="${source}"/>
</exec>
<delete file="hphpa.phar"/>
</target>
<target name="phpdoc2" description="Generate API documentation using phpDox" depends="prepare">
<phpdoc2 title="API Documentation"
destdir="${basedir}/build/docs"
template="responsive-twig">
<fileset refid="sourceWithTests"/>
</phpdoc2>
</target>
<target name="phpcb" description="Aggregate tool output with PHP_CodeBrowser" depends="prepare">
<exec executable="phpcb">
<arg line="--log ${basedir}/build/logs
--source ${source}
--output ${basedir}/build/code-browser"/>
</exec>
</target>
<target name="composer" description="Installing dependencies" depends="prepare">
<delete dir="${basedir}/vendor"/>
<composer command="install">
<arg value="--dev"/>
</composer>
</target>
<target name="doctrine" description="Building Database/Doctrine" depends="prepare">
<copy file="${basedir}/config/autoload/local.php.test" tofile="${basedir}/config/autoload/local.php"
haltonerror="true"/>
<delete dir="${basedir}/data/db/"/>
<mkdir dir="${basedir}/data/db/"/>
<chmod file="${basedir}/data/db/" mode="777"/>
<exec executable="${basedir}/vendor/bin/doctrine-module">
<arg value="orm:schema-tool:create"/>
</exec>
<delete dir="${basedir}/data/DoctrineORMModule/Proxy"/>
<mkdir dir="${basedir}/data/DoctrineORMModule/Proxy"/>
<exec executable="${basedir}/vendor/bin/doctrine-module">
<arg value="orm:generate-proxies"/>
</exec>
<exec executable="${basedir}/vendor/bin/doctrine-module">
<arg value="data-fixture:import"/>
</exec>
</target>
<target name="build"
depends="lint,pdepend,phpcs,phpcpd,phpmd,hphpa,phpdoc2,composer,doctrine,phpunit,phpcb"/>
</project>
某些目标(如 phpunit、phpmd 和 phploc)运行良好,但其他目标却不行?例如。当我运行 phpcpd 时出现此错误:
Execution of target "phpcpd" failed for the following reason: /home/munnik/Sites/SolExactConnector/trunk/build.xml:83:16: /home/munnik/Sites/SolExactConnector/trunk/build.xml:83:16: PHPCPDTask depends on PHPCPD being installed and on include_path.
BUILD FAILED /home/munnik/Sites/SolExactConnector/trunk/build.xml:83:16: /home/munnik/Sites/SolExactConnector/trunk/build.xml:83:16: PHPCPDTask depends on PHPCPD being installed and on include_path. Total time: 0.1250 seconds
我需要添加 Composer 自动加载或类似的东西吗?
最佳答案
要使用 composer autoloader 而不是全局 PEAR 包,您可以在 build.xml 的开头添加以下行:
<php expression="include('vendor/autoload.php')"/>
这有助于我使用 PHPUnit(我没有安装全局 PHPUnit PEAR)。认为这将帮助您成功加载所有 Composer 包。
关于build - Phing和 Composer ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19226836/
我使用以下命令使用 Composer 删除了一个包。 composer remove sjparkinson/static-review 以上命令从 composer.json 中删除条目文件但 co
我刚刚开始使用 Composer 功能,你告诉它查看本地目录的依赖关系,这样你就可以开发一个库和一些并行使用该库的东西,而不必一直推送到 git 来更新,这是惊人的。例如 "repositories"
composer 和有什么区别和 composer.phar ? 例子: composer install composer.phar install 我一直看到使用 composer.phar 编写
阅读docker-compose -h或this official manual的帮助将为我们提供--project-directory PATH选项 docker-compose [-f ...]
我已经使用他们的安装指南在我的 Linux/Apache 服务器上的根目录(这是默认选择)中成功安装了 Composer。到目前为止,一切都非常简单,除了我必须进行的一个 php.ini 调整( de
在我的 composer.json配置文件,我有: "require": { "zendframework/zend-log" : "~2.3", }, "require-dev": {
从 Composer 安装此软件包后,我想复制位于软件包内的一些文件。 实际上,我希望在从 Composer 安装或更新软件包后,将下载的软件包中可能存在的某个文件复制到另一个目录。我用 script
我对码头公司还是个新手。我使用的是最新版本的Python、Django和Docker。我已经在这个项目上工作了两周了,我已经创建了docker-compose.yml文件,并且已经构建了我的docke
我正在尝试使用 composer 安装一个 github 项目并得到以下错误 Composer [UnexpectedValueException]您的 github.com 的 Github oau
我开发 Symfony 包的工作流程如下: 安装 Symfony 为新包创建一个 git repo,在其中放置一个 composer.json 文件 需要顶级 composer.json 中的新包,使
我正在尝试使用 composer 安装 github 项目并收到以下错误 Composer [UnexpectedValueException] 您用于 github.com 的 Github oau
我们在项目中使用了 composer。当我开发和/或向项目提交任何内容时,我通常应该使用 composer install;更新依赖项只是偶尔进行。 我们还使用 https://github.com/
我在 youtube 上学会了这个抽屉 https://www.youtube.com/watch?v=JLICaBEiJS0&list=PLQkwcJG4YTCSpJ2NLhDTHhi6XBNfk9
我知道在 onClick 中调用可组合函数是不可能的。 @Composable 调用只能在 @Composable 函数的上下文中发生 撰写版本 - alpha06 但我坚持以下要求。 要求是, 在
这是我的 docker-compose.yml 文件: version: '3.1' services: a: image: tutum/hello-world b: imag
创建Asset实例时是否有auto_increment字段类型可用。例如, Assets ID 应该是自动生成的字段,应该在运行时创建,而不是在应用程序级别提及该值。我可以通过创建一个交易处理器函数来
在 Composer 项目中,我必须添加一个库,它没有 composer.json 并且不使用命名空间。因此,我调整了项目的 composer.json 以添加库: { [...] "
当 vendor 目录中已经有一些组件被下载时.. 在上面运行 install 以及运行 update 时有什么影响? 最佳答案 所以我有同样的问题,这是我发现的: composer install
尝试运行 composer install 时出现此错误。我已经运行了 composer update,我正在尝试使用这个最新的锁定文件进行安装。没有任何帮助。 Loading composer re
当我尝试做: $ sudo php composer.phar update 我收到此警告: Warning: This development build of composer is over 3
我是一名优秀的程序员,十分优秀!