目前,我在供应商目录中签出了一个私人SVN存储库,可以与作曲家合作.它的工作原理非常好,但是只有我不更改/提交东西.当i composer update更改SVN回购后,我会得到清晰的消息我的工作方式不推荐我的工作方式,除了消息,我的.svn目录丢失了. (丢失的.svn目录可能是因为我从单个仓库中对多个供应商软件包进行了结帐) 我知道,在供应商目录中进行结帐并不是最佳实践.但这感觉很舒服(如果运作时,则可以使用).现在,由于我不是一个喜欢坚持不良做法的人,所以我想改进这一点. 作曲家的推荐只为我提供了一些示例,介绍了如何在供应商目录中运行中的SVN,而"最佳实践"句子对我来说也不清楚.另外,这篇文章也没有真正的帮助,因为我没有得到消息Seldaek正在演示. 我的问题是,使用SVN管理供应商的正确方法是什么? 解决方案 推荐方法是仅提交composer.lock和composer.json文件.这使您的存储库轻量级,因为您不必提交所有构成随附库的文件.作曲家承
以下是关于 dependencies 的编程技术问答
在每个版本的PHP中,都添加了一些新功能并停止了某些功能. 示例: 将需要PHP 5.4.0及以上,因为Hex2bin在PHP 5.4.0中引入. 对于PHP代码中使用的每个内置功能,在PHP.NET中手动检查版本依赖性是很乏味的.是否需要任何自动化/半自动化方法来识别执行任何给定的PHP代码的最低版本(以及最大版本(如果适用))? 解决方案 查看phpCompatibility project: https:/https://github.com/wimg/phpcompcompatible 这可以测试您的代码与5.2、5.3、5.4和5.5(撰写时的alpha2) 其他解决方案 不知道是否需要检查PHP WICH版本,但是您可以使用" function_exists"来查看您的版本PHP是否具有该函
我知道一些OOP并已经阅读了这篇文章,但是不是一个铁杆的OOP家伙,也没有正式的培训,也不能避免使用依赖性注射,也可能无法识别所有依赖项在设计中,我的问题. 在此处回答一个问题(其他对象方法中的对象)我开始怀疑自己.至于依赖性,这些是更好的还是更糟的或两者都可以接受的?有任何设计限制吗? 我已经阅读和理解两者,但从未遇到过比较.为什么要在设计等中更好地使用一个. 依赖注入: class myClass { private $db; public function __construct($db) { $this->db = $db; } } 注册表(也许还有其他内容): class myClass { private $db; public function __construct() { $this->db = Registry::get('db'); } } 解决
我正在使用作曲家作为我的依赖性经理,并且由于我需要使用YII框架开发,因此我将其添加到Composer.json文件中,因此看起来像这样: //other properties... "require": { //other dependencies... "yiisoft/yii": "dev-master" } composer.json还可以,yii正确下载了,但是我认为作曲家错过了一项功能. 我的YII目录现在充满了"垃圾",演示文件夹,构建我不需要的文件bla bla. 有一种方法告诉作曲家只保留一些目录并扔掉其他目录? 解决方案 在作曲家中,我们以不同的方式工作.与作曲家一起,我们的应用程序仅保重其代码.实际上,如果您使用git kork,则必须将yii文件夹添加到.gitignore couse不是您的应用程序文件夹.这是符合方式. yii!?首先,我建议您使用: 开始YII项目 $ composer create-project
我正在使用作曲家作为我的依赖性经理,并且由于我需要使用YII框架开发,因此我将其添加到Composer.json文件中,因此看起来像这样: //other properties... "require": { //other dependencies... "yiisoft/yii": "dev-master" } composer.json还可以,yii正确下载了,但是我认为作曲家错过了一项功能. 我的YII目录现在充满了"垃圾",演示文件夹,构建我不需要的文件bla bla. 有一种方法告诉作曲家只保留一些目录并扔掉其他目录? 解决方案 在作曲家中,我们以不同的方式工作.与作曲家一起,我们的应用程序仅保重其代码.实际上,如果您使用git kork,则必须将yii文件夹添加到.gitignore couse不是您的应用程序文件夹.这是符合方式. yii!?首先,我建议您使用: 开始YII项目 $ composer create-project
是否有任何工具可以列出PHP文件使用的类的名称? 例如,如果我在此文件上运行它: 它将报告" OBJ1"和" OBJ2".如果真的很聪明,它也可能会报告" OBJ3",但这不是必需的. 我正在尝试打包一些代码,我想要一些帮助,以确保我没有错过任何依赖. 有一种叫做 php_deppert ,可以绘制依赖次数,但可以' t报告他们是什么. 更新:我找不到真正的解决方案,但是我发现了足够接近的东西.您可以将一个文件引用,并搜索所有T_STRING令牌.这将为您提供文件中提到的所有类名称.它还将为您提供其他内容,例如功能名称和常数.但是,如果您的班级名称易于区分(例如,它们具有初始上限),那么这应该不是问题.
我正在尝试在我的Amazon Linux AMI实例上安装yii2,它需要工作php-mbstring扩展名. 当我尝试运行sudo yum install php-mbstring时,它返回了此错误: 错误:php56-common与php-common-5.3.29-1.8.amzn1.x86_64 发生冲突 Loaded plugins: priorities, update-motd, upgrade-helper amzn-main/latest | 2.1 kB 00:00 amzn-updates/latest | 2.3 kB 00:00 2494 packages excluded due to repository priority protections Resolving Depe
我想知道,在注册脚本并指定依赖项之后,重新启动时,您是否应该再次指定依赖项? ,我会说不的逻辑,但我没有真正的想法...您的灯光得到了赞赏! 示例1 add_action( 'wp_enqueue_scripts', 'theme_scripts' ); function theme_scripts() { if( ! is_admin() ) { wp_register_script( 'script_one_js', '//path/to/script/one.js' ); wp_register_script( 'script_two_js', '//path/to/script/two.js', array( 'script_one_js' ) ); // Specifying dependency again wp_enqueue_script( 'script_one_js' ); wp_enqueue_sc
是否可以使用CLI命令指定composer.json文件的路径?更好的是,是否可以用不同名称的文件用户? 解决方案 我建议您看看: https://getcomposer.org/doc/03-cli.md.md.md#environment-variable https://getComposer.org/doc/doc/ 作曲家 通过设置COMPOSER env变量,可以将composer.json的文件名设置为其他. 例如: COMPOSER=composer-other.json php composer.phar install 生成的锁定文件将使用相同的名称:composer-other.lock在此示例中.
我得到了一个大型PHP网站,我现在将要处理.它包含数百个单独的PHP文件,但我怀疑实际上只使用了不到一半.大多数可能会被删除. 但是,我真正想做的最后一件事是浏览每个文件的代码,并检查其是否链接,包括,必需...等.给他人或是否可以安全地删除它. 您知道是否有任何能够执行此操作的工具? 解决方案 看一下 交叉引用PHP类,功能,变量,常数和要求/包括使用. 其他解决方案 使用自动化工具分析代码的问题是,您可能会发现彼此链接的文件批次,但是从未使用过一批文件.相反,可能有一个直接访问的文件,但不使用其他文件,也不包含任何其他文件. 通常,我绝望地将日志记录到每个文件中.访问文件时,简单的写入__FILE__向日志文件.这确实添加了整个台面的开销.但是,经过一定的时间,您实际上将访问和使用文件列表. 您还可以定期分析日志文件,并从您知道的文件中删除日志记录,从而减少开销.最后,您可以搜索仍然具有记录代码的文件以查看尚未使用的文件. 其他解决方案
我有一个项目,我使用了作曲家,然后我会导入许多事情...我需要索引中的autoload.php(项目的根源)和iStead Slim,mongo,mongo,twig效果很好.但是,当我称之为尊重/验证类时,它行不通.如果我只是使用尊重/验证,则错误是: Class 'Respect\Validation\Validator' not found in (path of file when i need it). 如果我也尝试在这里需要autoLoad.php,则错误为: **Warning**: require_once(vendor/autoload.php): failed to open stream: No such file or directory in (path of file when i need it) **Fatal error**: require_once(): Failed opening required 'vendor/auto
这是该帖子构成的一个通用虚构示例.考虑6个类 TableFactory, TableData, TableCRUD, TableSchema, DBConnect, Logger. TableFactory是外部类 在此TableFactory中,没有电话TableSchema或DBConnect或logger.我的目标是在外部范围中不需要内部对象的示例. TableData是一个内部提取并在数据上运行,因此它需要TableCrud,DBConnect和Logger. . TableCrud包含TableSchema,需要DBConnect,Logger. DbConnect为了使事情变得有趣,需要一个记录器.我的示例现在是3个范围深. 我的问题很简单,如果您的对象3(或更多)范围没有由外部范围上的对象调用,那么如何将这些对象从外部到内部范围发送而不破坏接口隔离原理 - > tableFactory不必处理内在对象所需的dbconnect或logger
我具有具有属性的关系模式(A B C D). 我也有一组功能依赖. 现在,我需要确定R属性的所有可能子集的关闭.那就是我被困的地方.我需要学习如何在php中找到子集(非重复). 我的阵列是这样存储的. $ATTRIBUTES = ('A', 'B', 'C', 'D'). 所以我的子集应为 $SUBSET = ('A', 'B', 'C', 'D', 'AB', 'AC', AD', 'BC', 'BD', 'CD', 'ABC', 'ABD', 'BCD', 'ABCD') 代码不应该很大,但由于某种原因我无法绕过它. 解决方案 您希望$attributes的功率集?这就是您的问题所暗示的. 可以找到一个示例在这里) [ [a], [b], [c], [a
我在新的Linux设置中遇到问题 - 我已经将Nodemon安装为本地依赖性(不是全球),并且我正在尝试从我的软件包中执行它.JSON" start" -script.我正在遇到此权限错误. node本身效果很好,但是一旦我尝试使用babel-node或nodemon甚至mocha,我就会遇到权限问题. 我的设置分为2个硬盘驱动器 - 在我的SSD上安装了节点(带有我的操作系统)和我的项目(并且是node_modules,我试图从存储hdd上执行nodemon. sh: 1: nodemon: Permission denied npm ERR! Linux 3.19.0-56-generic npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "start" npm ERR! node v5.9.0 npm ERR! npm v3.7.3 npm ERR! code ELIFECYCLE npm ERR! vyggo-ea
这与a 以前的问题关于CPAN::Meta::Spec,这似乎不是为我认为可以使用的. 我的用例 我有不同的perl应用程序,其中包含许多包装,具体取决于某些家庭种植的系统广泛的实用程序,当然还有第三方套餐.这些应用程序可能会根据运行时配置提供不同的功能,并根据这些功能,依赖项不同.此外,如果可用自动测试,这些测试也可能引入依赖项,在最新的示例中,这些依赖项在Windows上的ActiveState Perl 5.22中可用于默认情况下,在Ubuntu 16.04上使用APT需要安装的这些依赖项. . 我自己的应用程序和公用事业用品是使用颠覆和库存至少部分公开可供客户使用的.第三方软件包优先由OS的软件包管理器(例如APT或PERL分布)维护,例如PPM Windows上的ActiveState Perl.只有以这种方式不可用时,CPAN才会发挥作用. 我想实现的目标... ...正在描述我的应用程序和系统广泛的实用程序及其依赖性,使我可以区分例如从开发或
我继承了一个应该可以部署到其他服务器的项目.该项目具有许多简单的模块依赖项,但是所有目标机上可能都不存在. 因此,我希望能够运行一个单个命令行脚本,该命令行检查哪些PERL模块已安装,并尝试通过CPAN自动安装缺失的模块. 因为这应该是非常基本的(即需要安装的东西运行模块安装程序将击败该点)表示脚本只能使用Perl 5.8.8核心模块. 已经存在类似的东西还是我需要自己写? 解决方案 创建一个捆绑包是一个可能的答案. 然后您可以查看CPAN::Shell之类的东西(请参阅/i3az/ 更新 re:布莱恩对Task::的评论 - 以下是一些相关链接: 其他解决方案 使用
我发表了这个问题类似于 buildout for perl.我认为 shipWright 但我不确定.我已经玩过它了,我创建了一个项目,导入了我的所有来源和依赖关系,并且将所有内容导出到船只,然后将文档停止.我该如何处理造船厂?我是在船上进行实际开发工作,还是在造船厂进行开发?我假设该船只仅用于部署,但是我如何实际部署船只到Web服务器(例如我使用Linux,Apache,并且仅运行直接CGI). Shipwright是我要完成的工作,还是还有其他更合适的事情?理想情况下,我可以使用类似于使用建筑物的Shipwright.我使用建筑物为我的开发创建一个不错的孤立环境,并且在部署时也使用BuildOut来管理我的所有应用程序的依赖关系. 编辑:以下是我想在perl中做的建筑物的亮点. 使用BuildOut,我在代码库中有一个文件,该文件列出了依赖项(Perl将是CPAN模块或其他源存储库).我可以运行一个引导脚本,该脚本将获取所有这些依赖关系,并将它们放入我的项目中的目录