我为我的个人PHP库创建了一个SVN存储库,并在根级别添加了一个composer.json文件:
{
"name": "myPersonalLibrary/lib",
"type": "library",
"description": "Light MVC framework for PHP 5.4",
"keywords": ["database","mvc"],
"homepage": "http://mysite.com",
"license": "MIT",
"require": {
"php": ">=5.3.0",
"mustache/mustache": "dev-master"
},
"autoload": {
"psr-0": {
"bbn": "src"
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我使用以下composer.json创建了一个项目:
{
"require": {
"monolog/monolog": "1.0.*",
"zerkalica/php-code-sniffer": "dev-master",
"mustache/mustache": "dev-master",
"myPersonalLibrary/lib": "*"
},
"repositories": [
{
"type": "svn",
"url": "https://mysite.com/svn/myPersonalLibrary",
"branches-path": false,
"tags-path": false,
"trunk-path": "src"
}
]
}
Run Code Online (Sandbox Code Playgroud)
当我尝试更新我的项目时,我得到: No valid composer.json was found in any branch or tag of https...
我认为问题来自我的文件结构,但我找不到任何关于此的文档:
/my_repo
/src …Run Code Online (Sandbox Code Playgroud) 我在这里读了很多Q/A关于SVN repos中目录"branch","tag"和"trunk"的含义,现在我想我明白了,我正在尝试实现它.
我使用Virtualmin来管理我的服务器,它通过它的Web GUI为我创建了回购.但是,一旦创建我的repo是空的,所以我想我需要自己创建目录结构并提交它.一旦完成,我将项目的文件放在trunk中,因为我处于稳定版本状态,我应该将它分支到branch/xxx(这将是我开发中的一个保存点),以及标签/ xxx(将是我的开发版).
如果我在这里是正确的,那么我用Tortoise切换到我的新标签,并且只有在我的下一次提交中才会更改它.顺便说一句,使用Tortoise,我是否需要右键单击当前标记目录,还是我仍然可以直接从项目的根文件夹提交/恢复?
我当前的项目有一个配置文件定义了几个绝对路径 - 可能是错的但我没有找到任何方法来避免它.因为我希望能够看到我的项目从任何分支/主干运行,这是否意味着我需要为每个版本配置不同的配置文件?如果是这样,我应该将此文件添加到忽略列表中吗?我的意思是什么是好的做法?
额外的问题:如果我想在这种情况下使用Composer,我的composer.json和vendor目录应该在哪里?
谢谢!
我在Web应用程序上工作了很长时间,使用jQuery在PHP/MySQL中开发了某种CMS和Intranet门户.
目前,存储库在SVN下,但我想我会在公开之前在GIT上迁移.我想知道你们中的一些人是否可能知道什么是最好的方法,或者只是给出一些建议,或者分享关于公开网络应用程序的事实的一些链接,并试图吸引开发人员参与项目.
我不知道我将使用哪个许可证(GPL,MIT?),也不知道我希望它托管的平台(Sourceforge,Github,Google代码).任何有关这方面的建议都会很棒.
谢谢你的帮助.
我使用tinyMCE和PHP压缩器.我想将它放在一个文件夹中,由我的服务器上需要它的所有域使用,而不是每个站点的副本.但是,因为我知道它不是跨域的,所以我认为我可以将它放在每个站点可以通过符号链接到达的文件夹中.
但是我收到了这个PHP错误:
No input file specified.
Run Code Online (Sandbox Code Playgroud)
我的印象是它与tinyMCE本身的关系不如使用符号链接,但我没有任何线索.
有人知道吗?
谢谢!
更新:
经过大量挖掘后,它似乎与Apache有关.PHP通过FCGId运行,似乎是一个权限错误.但是如果我用mod_php运行它,我会得到一个错误500.
解决方案:
将其作为一个真正的答案,以便问题没有答案......见下文
我试图在表'apst_mailings'上运行查询,存储我们发送给订阅者的每个时事通讯的内容.每当我们尝试将电子邮件发送给个人时,我们在apst_mailings_accuses中插入一行,报告发送的时间和状态以及新邮件的ID.我想列出新闻通讯并计算每个发送和成功发送的总数.
SELECT m.id AS code_mailing,
COUNT(a.adh_code) AS num, COUNT(b.adh_code) AS succes
FROM apst_mailings AS m
LEFT OUTER JOIN apst_mailings_accuses AS a
ON a.id_mailing = m.id
LEFT OUTER JOIN apst_mailings_accuses AS b
ON b.id_mailing = m.id
AND b.etat = 'succes'
GROUP BY m.id
Run Code Online (Sandbox Code Playgroud)
它只是永远挂起服务器.我已尝试在分离的查询中的每个连接,它没有问题的工作:
// Counts the email sent per mailing
SELECT m.id AS code_mailing,
COUNT(a.adh_code) AS num
FROM apst_mailings AS m
LEFT OUTER JOIN apst_mailings_accuses AS a
ON a.id_mailing = m.id
GROUP BY m.id
SELECT m.id AS code_mailing,
COUNT(b.adh_code) AS …Run Code Online (Sandbox Code Playgroud) 我创建了一个File类,它负责文件,I/O上的所有操作,并根据文件的性质采取不同的操作.我对它的实际结构不满意,看起来像这样:
class File
{
function __construct($id)
{
$bbnq = sprintf("
SELECT *
FROM documents
WHERE id = %u",
$id);
$req = bbnf_query($bbnq);
$bbn = $req->fetch();
$this->file_type = $bbn['file_type'];
$this->file_name = $bbn['file_name'];
$this->title = $bbn['title'];
}
function display()
{
return '<a href="'.$this->file_name.'">'.$this->title.'</a>';
}
}
class Image extends File
{
function __construct($id)
{
global $bbng_imagick;
if ( $bbng_imagick )
$this->imagick = true;
parent::__construct($id);
}
function display()
{
return '<img src="'.$this->file_name.'" alt="'.$this->title.'" />';
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,我首先需要知道文件类型,以确定使用哪个类/子类.
我想要实现相反的目的,即向我的类发送一个ID,它返回一个对应于文件类型的对象.
我最近更新到PHP 5.3,我知道有一些新功能可用于创建"工厂"(后期静态绑定?).我的OOP知识非常简单,所以我想知道是否有一些结构建议,以便创建一个独特的类,它将调用正确的构造函数.
谢谢!