小编Jas*_*ary的帖子

PHP代码分析器确定使用的类/扩展

问题

我有一个遗留代码库,我需要分析和确定依赖项.特别是对类(内部/外部)和扩展(Memcache,PDO等)的依赖.

我试过的

我已经回顾了在PHP文件是否有静态代码分析器中列出的工具.不幸的是,这篇文章已经过时了,像phpCallGraph这样的大多数有前途的工具不再适用.

我的想法是用词法分析代码并寻找令牌.查看这些列表至少可以让我直观地确定依赖关系.但是,在以下代码中查找OtherClass可能很复杂:

$classname = 'OtherClass';
echo $classname::doubleColon();
Run Code Online (Sandbox Code Playgroud)

最后,我怀疑我是第一个需要这个的人.我确信存在一种工具或工具组合来提供我需要的东西.所以我在自己写这篇文章之前就问SO社区.

更新

理想情况下,此工具将分析具有完整代码覆盖率的多个文件 因此,像Xdebug这样的工具虽然很棒,但并不能解决这个问题.

php code-analysis lexical-analysis

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

CakePHP hasAndBelongsToMany(HABTM)删除连接记录

我在用户和位置之间有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订单.没运气.

在此先感谢您的帮助.

cakephp has-and-belongs-to-many

4
推荐指数
1
解决办法
6441
查看次数

PHP MS SQL Unix驱动程序-Microsoft或FreeTDS

我正在运行LAMP服务器,但现在需要连接到MS SQL(客户端请求)。我听说微软有驱动程序,但无法验证

有人知道Microsoft驱动程序是否可用于Unix吗?如果没有,我应该坚持使用FreeTDS吗?PHP似乎建议这样做,但是似乎缺少安装文档。任何一个方向都将不胜感激。

抱歉,我对设置PHP驱动程序不熟悉。

更新

只是出于某些背景,我正在从LAMP服务器运行Intranet,但需要连接到外部MS SQL DB Server(当然是Windows)上的数据源。我正在运行PHP5。

php sql-server lamp freetds

4
推荐指数
1
解决办法
1985
查看次数

.htaccess RewriteRule - DOCUMENT_ROOT和RewriteBase

我有一个安全/子目录,其中有几个文件,我想要执行一些简单的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会处理这个.但是,似乎需要这些部件中的每一件.我想知道为什么以及每个人在我的案例中取得的成就.

.htaccess mod-rewrite

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

CakePHP ACL:是否需要基本组/ ARO

我正在为CakePHP应用程序(1.3.14)实现ACL组件.我已经正确设置了所有设置,但有一些区域我仍然模糊不清.

主要是,我是否需要为特殊基本用户组(ARO)明确设置权限(ACO)?

为简单起见,假设我有管理员,然后是其他所有人(普通用户).那么我是否需要为这些普通用户创建一个组并映射其所有允许权限?似乎管理这些权利将永远不会随着应用程序的增长而结束.

另外,如何将用户分配到多个组?

理想情况下,如果某人拥有用户帐户,Auth组件将授予对整个系统的访问权限.然后,ACL会简单地从受现有组保护的部分中拒绝它们.

看起来ACL和Auth的耦合太高了.但这可能是我新的(有限的)理解.任何澄清将不胜感激.

UPDATE

我已经开始了赏金.总之,我想实现CakePHP ACL(最好是,但可以使用匹配的第三方组件),以满足/解决以下问题:

  • 将用户分配到多个组
  • 轻松维护"公共"用户组 - 不必经常添加普通用户可以访问的控制器/操作
  • 管理对控制器/访问的访问的代码示例
  • 正确测试用户的代码示例属于一个组.

acl cakephp

4
推荐指数
1
解决办法
2365
查看次数

使用自动布局的iOS消息单元格宽度/高度

目标

我正在尝试使用自动布局创建动态消息单元格.

在此输入图像描述

我试过的

在大多数情况下,单元格正确定位,具有以下约束条件的自动布局:

在此输入图像描述

问题

我的第一个问题是消息标签(可复制标签)宽度受到限制.这似乎可以通过使用此问题中setPreferredMaxLayoutWidth:描述的方法来解决.

身高仍然是个问题.正如您所看到的,消息泡沫仍在切断.另外,我不确定如何确定表视图的消息单元格高度.

我预计自动布局会以某种方式正常工作.我已经在这里阅读了答案,但步骤似乎很多.

问题

首先,自动布局是否比传统的帧算法更复杂?

其次,使用自动布局,如何确定结果单元格的高度?

uitableview ios autolayout

4
推荐指数
1
解决办法
2061
查看次数

git - 将修补程序合并到 dev 和 master 中会导致分歧

我正在遵循一个成功的 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)

看来修补程序的合并提交是有区别的。

我认为遵循这个过程将保留共同的历史。我做错了什么?

git branch

4
推荐指数
1
解决办法
3792
查看次数

使用单一安装在同一服务器上的多个域的 AWStats

我正在尝试确定如何为服务器服务器上的多个站点设置 AWStats。理想情况下,我会去 stats.mydomain.com 并能够查看我服务器上任何站点的 awstats。也就是说我不想设置stats.domain1.com,stats.domain2.com,恶心。是否可以创建单个位置,然后通过表单选择在域之间切换。我觉得我以前见过这个,但没有找到任何网络参考。

我知道我仍然需要设置 cron 作业、日志文件等来单独生成每个域。对我来说重要的是集中查看。

任何方向将不胜感激。

awstats

3
推荐指数
1
解决办法
3773
查看次数

Objective-C(iPhone)ivars和内存管理

我是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,这不会与访问方法做同样的事情,而不必写它?

也许只是两种不同的方式来做同样的事情.但我想确保我有正确的理解.谢谢.

iphone objective-c

3
推荐指数
1
解决办法
442
查看次数

UNIX将文件/目录重命名为大写

我试图用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因为我的发行版不支持.

shell

3
推荐指数
1
解决办法
4777
查看次数