小编Max*_*bre的帖子

存储库部署和Composer:什么工作流程?

作为一名PHP开发人员,我发现自己经常使用Composer.在过去,这是个人项目,所以我没有太多的问题,但现在与Laravel 4项目需要部署,我很难适应我的工作流程.

我的所有项目都是git存储库,因此按照惯例,因为它仍然非常错误,像大多数开发人员一样,我把vendor目录放在我的.gitignore.现在的问题是:我还使用Git部署到服务器,并且所有逻辑都没有上传供应商目录,因为它没有被存储库跟踪.

所以我的问题是那些与Composer和Git合作的人比我更长的时间:保持服务器同步的最佳工作流程是什么?如何跟踪供应商文件夹而不真正跟踪它?我每次使用Composer更新时都尝试上传它,但我的一些供应商文件夹非常大,每次更新时我都无法手动上传30Mb的文件.

我真的不知道,你们是怎么解决这个问题的?我试着不忽略vendor文件夹,但是Git只是搞砸了,有一半被认为是克隆的回购并且无论如何都被忽略了等等.

更新:请注意,我在共享主机上,因此我无法访问服务器的终端.

php git deployment composer-php

19
推荐指数
1
解决办法
5374
查看次数

PHP在对象上下文中使用静态方法

我有以下代码(例如,实际上,这是我的真实代码):

<?php
class Foobar
{
  public static function foo()
  {
    exit('foo');
  }
}
Run Code Online (Sandbox Code Playgroud)

当我运行$foobar = new FooBar; $foobar->foo()它显示foo.

为什么PHP会尝试在对象上下文中使用静态方法?有办法避免这种情况吗?


好吧,你们没有得到我的问题:我知道静态和非静态方法之间的区别以及如何调用它们.这是我的全部意义,如果我打电话$foobar->foo(),为什么PHP会尝试运行静态方法?


注意:我运行PHP 5.4.4,报告错误E_ALL.

php static-methods magic-methods

14
推荐指数
2
解决办法
1万
查看次数

将选择拆分为PHPStorm中的行

在Sublime中,我非常喜欢"分割选择成线"的快捷方式(super + shift + l).但是我在PHP Storm 8中找不到相同的东西,我在编辑菜单中找到了"拆分成行"功能,但是喂它或者\n或\ r似乎不起作用.PS中是否存在该功能?

phpstorm

11
推荐指数
4
解决办法
3768
查看次数

更改子类的受保护变量的值

我正在尝试做一些我认为非常简单的事情,但由于我在PHP中对OOP相对较新,所以我遇到了一些麻烦.

这是我的代码:

<?php
class MyClass
{
    protected $variable = 'DEFAULT';

    function __construct($newVariable)
    {
        $this->variable = $newVariable;
        echo $this->variable;
    }
}
class OtherClass extends MyClass
{
    function __construct()
    {
        echo $this->variable;
    }
}

$foo = new MyClass('MODIFIED'); // Output : MODIFIED
$bar = new OtherClass(); // Output : DEFAULT
?>
Run Code Online (Sandbox Code Playgroud)

我搜索了很多不同的线程和网站,但还没有找到我如何将$ variable的重新定义值传递给子类.有人可以指导我吗?如果有办法的话.

提前致谢.

编辑澄清脚本中实际发生的事情我遇到了这个问题:我有一个创建表单的类,在该类中有几个变量告诉我们在什么环境中的函数:如果它是多语言形式,如果我想要一个简单的形式或一个结构化的形式,这样的参数.并且这些环境变量中的一些通过其功能的执行来修改.

现在,由于我的页面的需要,我有一个专门用于创建"选择"字段的子类.它继承了主类的核心功能来创建字段等,但子类需要多个参数.事实上,我仍然希望select类从它们所处的状态继承主类的environnement参数.

当我输入它时,我意识到我接近它的方式可能不是正确的方法,因为当我查看我的代码时,我认为可能有另一种方法可以做到这一点.在我的代码中,我有两个对象,我需要它只有一个,但我真的不知道如何实际放置它.

php oop inheritance

6
推荐指数
1
解决办法
7653
查看次数

在MAMP上使用Python

我正在慢慢地从PHP迁移到Python.特别是,当我在webdev/webdesign工作时,我想使用Python显示一个基本的HTML页面,使用以下代码:

#!/usr/bin/python

print('<html><head></head><body>This is a test</body></html>')
Run Code Online (Sandbox Code Playgroud)

同样,重点是看它是否有效.在我的主机上将文件作为index.cgi在线发送我没有问题显示文件的内容.当我尝试在MAMP上安装WSGI模块时,问题就开始了,或者只是为了让Python一般地工作.当它转到localhost/index.cgi时,将显示文件的内容而不是其结果.我已经按照了六个教程,似乎没有一个工作,我总是遇到一个问题.它似乎来自这样一个事实,即MAMP附带的Apache不是以允许您向其添加模块的方式构建的(例如wsgi).

这也是因为我找不到最近关于如何在MAMP上安装Python的文章,它们都是从2008年或2009年开始,使用旧版本的MAMP,Python和Macports.

有人能指出我目前的程序来完成这项工作吗?


编辑:好的,在找到这篇文章之后,我收集了MAMP默认情况下不处理MAMP /中cgi-bin /文件夹之外的CGI脚本.所以我按照解释修改了Apache conf文件,它现在显然读取了.cgi文件,但是上面显示的内容引发了错误500.代码是罪魁祸首还是MAMP?

python mamp wsgi

5
推荐指数
1
解决办法
1万
查看次数

RVM无法将ruby设置为默认值

我不知道为什么,但是RVM似乎无法更改默认的Ruby。我正在使用Oh My Zsh,并尝试了所有发现的内容,但似乎无济于事。

?  Sites  rvm use 2.0.0 --default
Using /Users/anahkiasen/.rvm/gems/ruby-2.0.0-p247
?  Sites  rvm list
rvm rubies

=* ruby-2.0.0-p247 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

?  Sites  rvm reload && rvm list
RVM reloaded!

rvm rubies

 * ruby-2.0.0-p247 [ x86_64 ]

# => - current
# =* - current && default
#  * - default
Run Code Online (Sandbox Code Playgroud)

现在,将Ruby设置为默认值,但RVM不会将其加载为“当前”,这意味着它不会加载与其关联的gemset。

?  Sites  rvm use 2.0.0
Using /Users/anahkiasen/.rvm/gems/ruby-2.0.0-p247
?  Sites  gem list …
Run Code Online (Sandbox Code Playgroud)

rvm

0
推荐指数
1
解决办法
1824
查看次数