我有一个遗留代码库,我需要分析和确定依赖项.特别是对类(内部/外部)和扩展(Memcache,PDO等)的依赖.
我已经回顾了在PHP文件中是否有静态代码分析器中列出的工具?.不幸的是,这篇文章已经过时了,像phpCallGraph这样的大多数有前途的工具都不再适用.
我的想法是用词法分析代码并寻找类令牌.查看这些列表至少可以让我直观地确定依赖关系.但是,在以下代码中查找OtherClass可能很复杂:
$classname = 'OtherClass';
echo $classname::doubleColon();
Run Code Online (Sandbox Code Playgroud)
最后,我怀疑我是第一个需要这个的人.我确信存在一种工具或工具组合来提供我需要的东西.所以我在自己写这篇文章之前就问SO社区.
理想情况下,此工具将分析具有完整代码覆盖率的多个文件 因此,像Xdebug这样的工具虽然很棒,但并不能解决这个问题.
我在用户和位置之间有HABTM关系.两种模型都有适当的$hasAndBelongsToMany变量集.
当我管理用户位置时,我想删除用户和位置之间的关联,而不是位置.显然,此位置可能属于其他用户.我希望以下代码只删除提供HABTM关联的连接表记录,但它删除了两个记录.
$this->Weather->deleteAll(array('Weather.id' => $this->data['weather_ids'], false);
Run Code Online (Sandbox Code Playgroud)
但是,我是CakePHP的新手,所以我确信我错过了一些东西.我尝试将cascade设置为false并使用User,User-> Weather,Weather-> User更改Model订单.没运气.
在此先感谢您的帮助.
我正在运行LAMP服务器,但现在需要连接到MS SQL(客户端请求)。我听说微软有驱动程序,但无法验证
有人知道Microsoft驱动程序是否可用于Unix吗?如果没有,我应该坚持使用FreeTDS吗?PHP似乎建议这样做,但是似乎缺少安装文档。任何一个方向都将不胜感激。
抱歉,我对设置PHP驱动程序不熟悉。
只是出于某些背景,我正在从LAMP服务器运行Intranet,但需要连接到外部MS SQL DB Server(当然是Windows)上的数据源。我正在运行PHP5。
我有一个安全/子目录,其中有几个文件,我想要执行一些简单的RewriteRules,只是默认PHP扩展.我很难让这些工作,经过一些试验和错误偶然发现了以下情况.
RewriteEngine On
RewriteBase /secure
# Force PHP extension if not a directory
RewriteCond %{DOCUMENT_ROOT}/secure/%{REQUEST_URI} -d
RewriteRule ^(.*)$ - [L]
RewriteCond %{DOCUMENT_ROOT}/secure/$1.php -f
RewriteRule ^((.*/)*[^./]+)/*$ $1.php [L]
Run Code Online (Sandbox Code Playgroud)
我缺乏理解是围绕%{DOCUMENT_ROOT}和追加/secure/.我相信%{DOCUMENT_ROOT}或使用RewriteBase会处理这个.但是,似乎需要这些部件中的每一件.我想知道为什么以及每个人在我的案例中取得的成就.
我正在为CakePHP应用程序(1.3.14)实现ACL组件.我已经正确设置了所有设置,但有一些区域我仍然模糊不清.
主要是,我是否需要为特殊基本用户组(ARO)明确设置权限(ACO)?
为简单起见,假设我有管理员,然后是其他所有人(普通用户).那么我是否需要为这些普通用户创建一个组并映射其所有允许权限?似乎管理这些权利将永远不会随着应用程序的增长而结束.
另外,如何将用户分配到多个组?
理想情况下,如果某人拥有用户帐户,Auth组件将授予对整个系统的访问权限.然后,ACL会简单地从受现有组保护的部分中拒绝它们.
看起来ACL和Auth的耦合太高了.但这可能是我新的(有限的)理解.任何澄清将不胜感激.
我已经开始了赏金.总之,我想实现CakePHP ACL(最好是,但可以使用匹配的第三方组件),以满足/解决以下问题:
我正在遵循一个成功的 Git 分支模型(又名 git-flow)。
我按照完成修补程序分支部分中的指导进行了修补程序。
我创建了一个来自master 的修补程序分支:
> git checkout -b hotfix upstream/master
Run Code Online (Sandbox Code Playgroud)
做了一些工作并手动将其合并到master中:
> git checkout master
> git merge --no-ff hotfix
Run Code Online (Sandbox Code Playgroud)
然后手动将其合并回dev:
> git checkout dev
> git merge --no-ff hotfix
Run Code Online (Sandbox Code Playgroud)
我对dev做了更多的工作承诺。一切看起来都很好。但是当我将dev合并到master时,它就不能了。
> git checkout master
> git merge --ff-only dev
fatal: Not possible to fast-forward, aborting.
Run Code Online (Sandbox Code Playgroud)
看来修补程序的合并提交是有区别的。
我认为遵循这个过程将保留共同的历史。我做错了什么?
我正在尝试确定如何为服务器服务器上的多个站点设置 AWStats。理想情况下,我会去 stats.mydomain.com 并能够查看我服务器上任何站点的 awstats。也就是说我不想设置stats.domain1.com,stats.domain2.com,恶心。是否可以创建单个位置,然后通过表单选择在域之间切换。我觉得我以前见过这个,但没有找到任何网络参考。
我知道我仍然需要设置 cron 作业、日志文件等来单独生成每个域。对我来说重要的是集中查看。
任何方向将不胜感激。
我是NSURLConnection的子类,并使用MGTwitterEngine作为基础来帮助我开始.这可能是无关紧要的.但是,我注意到他们的代码中没有使用@property或@synthesize用于他们的ivars.他们将ivars包装在accessor方法中,如下所示:
- (NSString *)identifier {
return [[_identifier retain] autorelease];
}
Run Code Online (Sandbox Code Playgroud)
我的问题是两部分.首先,什么效果也retain随后autorelease有哪些?在我看来它会取消自己,或者更糟糕但是泄漏.
其次,如果我要更改头文件:
@property (nonatomic, retain, readonly) NSString* _identifier;
Run Code Online (Sandbox Code Playgroud)
并使用@synthesize indentifier = _identifier,这不会与访问方法做同样的事情,而不必写它?
也许只是两种不同的方式来做同样的事情.但我想确保我有正确的理解.谢谢.
我试图用shell脚本将所有目录和文件重命名为大写.我有什么工作,但不适用于子目录.由于目录名在脚本执行期间发生了变化,我得到了类似的东西mv: cannot stat './def/two/three': No such file or directory
我尝试过使用-depthfind,所以它会从下往上重命名.但仍然遇到同样的问题.我虽然cut试图分开路径/并重命名,但我不知所措.
这就是我所拥有的:
for i in `find . -name "*[a-z]*"`
do new_name=`echo $i | tr '[a-z]' '[A-Z]'`
mv $i $new_name
done
Run Code Online (Sandbox Code Playgroud)
我希望任何方向,因为我觉得这应该是一项常见的任务,但未能找到一些谷歌搜索的工作解决方案.
请注意,我不能使用,rename因为我的发行版不支持.
cakephp ×2
php ×2
.htaccess ×1
acl ×1
autolayout ×1
awstats ×1
branch ×1
freetds ×1
git ×1
ios ×1
iphone ×1
lamp ×1
mod-rewrite ×1
objective-c ×1
shell ×1
sql-server ×1
uitableview ×1