你如何调试SugarCRM问题/了解SugarCRM如何工作?

mac*_*ost 15 php sugarcrm

我正在尝试将我们的公司从SalesForce转移到SugarCRM,但我遇到了一个讨厌的错误(当我向Accounts添加一个自定义字段时,所有帐户都停止显示).我们已经从SugarCRM人员那里获得了支持,但是他们只对开源版本提供了永远然后获得无价值的响应级技术支持(我们避免使用像瘟疫这样的专有软件).哦,我是否提到我们的Salesforce合同在本周末到期了?

所以,长话短说,我自己调试了SugarCRM应用程序.我是一个经验丰富的程序员,我有基本的PHP能力,但我甚至不知道在哪里尝试解决这个问题.那里的Sugar开发人员可以推荐任何调试Sugar的过程吗?是否有任何资源可以帮助我理解不同的PHP文件的作用,或者Sugar系统的整体运作方式?

就像我正在谈论的那种事情的一个例子:我想出了如何获得糖来打印堆栈跟踪,并通过以下几个我注意到一个涉及所有问题行的模式

$this->_tpl_vars
我想尝试弄清楚为什么那个方法调用不起作用,但我不知道:

A)_tpl_vars应该做什么
B)在哪里_tpl_vars定义
C)$this应该是什么
D)框架中$this的设置
等等

因此,如果有人可以帮助解释我将如何/在哪里开始寻找这些问题的答案,我将非常感激.

Nac*_*ack 14

几年前我和SugarCRM合作过,虽然我喜欢我在表面上看到的东西,但由于你现在正在经历的事情,我最终拒绝了它.该产品的内部结构严重不足.我曾设想为产品编写一堆光滑的模块,但资源不存在.您将花费所有时间挖掘代码,倾注论坛帖子,并试图找到您想要完成的内容的示例.听起来好像事情变得更好了.

鉴于你的PHP体验低于大师水平,并且你无疑忙于其他许多任务和截止日期,我认为你应该重新考虑这个转变,如果还不晚,至少在你获得更好的舒适度之前与糖水平.如果你因为与Salesforce的合同到期而被迫转移到Sugar,我想你可能会有一些严重的胃灼热!


dki*_*zer 6

使用Krumo库来提供帮助.它非常简单,比var_dump或更好print_r.

只需下载源代码并将其添加到自定义文件夹中的某个位置即可.我使用custom/include文件夹.

然后覆盖视图或您需要查看的任何内容.包括文件class.krumo.php文件的路径,以及krumo您要查看的任何对象:

快速举例 -

<?php
  require_once('include/MVC/View/views/view.detail.php');
  require_once('custom/include/krumo/class.krumo.php');
  class AccountsViewDetail extends ViewDetail {

    function AccountsViewDetail() {
      parent::ViewDetail();
    }

    // Override the parent function "preDisplay" to add our own template
    function preDisplay(){
      krumo($this->bean);
      $metadataFile = $this->getMetaDataFile();
      $this->dv = new DetailView2();
      $this->dv->ss =&  $this->ss;
      $this->dv->setup($this->module, $this->bean, $metadataFile, 'custom/modules/Accounts/tpls/AccountsDetailView.tpl');
    }


  }
?>
Run Code Online (Sandbox Code Playgroud)

您将在页面上获得一个可以钻取的好对象.

在此输入图像描述


mac*_*ost 4

虽然这不是我的问题的完美答案,但这篇文章:

http://developers.sugarcrm.com/wordpress/2008/09/26/where-is-the-code-for-x/

确实有一点帮助。另外,当我进一步查看 Sugar 官方文档时,我发现开发人员指南确实包含一些有关 Sugar 工作原理的解释(尽管显然它并不那么关注 Sugar 的工作原理,而是关注如何让 Sugar 做新事情)。

希望这对其他新兴的 Sugar 开发者有所帮助。