Как вы отлаживаете проблемы с SugarCRM/узнаете, как работает SugarCRM?

Я пытаюсь перевести нашу компанию с SalesForce на SugarCRM, но столкнулся с неприятной ошибкой (в тот момент, когда я добавляю настраиваемое поле в учетные записи, все учетные записи перестают отображаться). Мы заплатили за поддержку от людей SugarCRM, но у них есть только техническая поддержка на уровне «возьми навсегда, а потом получи бесполезный ответ» для версии с открытым исходным кодом (и мы избегаем проприетарного программного обеспечения, как чумы). О, и я упоминал, что срок действия нашего контракта с Salesforce истекает в конце недели?

Короче говоря, я сам застрял в отладке приложения SugarCRM. Я достаточно опытный программист, и у меня есть базовые знания PHP, но я даже не знаю, где мне пытаться решить эту проблему. Может ли кто-нибудь из разработчиков Sugar порекомендовать какой-либо процесс отладки Sugar? Существуют ли какие-либо ресурсы, которые помогли бы мне понять, что делают различные файлы PHP или как работает система Sugar в целом?

Just as an example of the sort of thing I'm talking about: I figured out how to get sugar to print stack traces, and by following several I noticed a pattern with all the problem lines involving

$this->_tpl_vars
I'd love to try and figure out why that method call isn't working, but I don't know:

A) что должен делать _tpl_vars
B) где определяется _tpl_vars
C) что должен делать $this
D) где во фреймворке устанавливается $this
и т. д.

Поэтому, если кто-нибудь может помочь объяснить, как/где я могу начать искать ответы на эти вопросы, я был бы невероятно благодарен.


person machineghost    schedule 21.10.2008    source источник
comment
P.S. Я пытался просмотреть документацию, предоставленную сахарными людьми, но, похоже, все дело в том, как работает само приложение, а не в том, как работает код приложения.   -  person machineghost    schedule 22.10.2008
comment
К сожалению, я тоже убедился, что это правда. Немного о том, как работает код, но много о том, как работает приложение, что отстой для разработчиков.   -  person AntonioCS    schedule 15.12.2009


Ответы (9)


Я работал с SugarCRM пару лет назад, и хотя мне нравилось то, что я видел на поверхности, в итоге я отказался от него для нашего проекта из-за того, что вы испытываете сейчас. Внутренности продукта прискорбно задокументированы. Я предполагал написать кучу гладких модулей для продукта, но ресурсов просто не было. Вы потратите все свое время на копание в коде, просмотр сообщений на форуме и попытки найти примеры того, чего вы пытаетесь достичь. Не похоже, что все стало намного лучше.

Учитывая, что ваш опыт работы с PHP ниже уровня гуру, и вы, несомненно, заняты множеством других задач и сроков, я думаю, вам следует пересмотреть этот переход, если еще не поздно, по крайней мере, пока вы не почувствуете себя лучше. уровень с сахаром. Если вы вынуждены перейти в Sugar из-за истечения срока действия контракта с Salesforce, я думаю, у вас может быть серьезная изжога!

person Nack    schedule 24.10.2008

Используйте библиотеку 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');
    }


  }
?>

Вы получите хороший объект на странице, который вы можете детализировать.

введите здесь описание изображения

person dkinzer    schedule 14.10.2011
comment
Эй, хороший совет! Я использую Krumo с Drupal уже несколько лет. Уже несколько месяцев я бился над сахаром и, как отмечали другие, столкнулся с отсутствием документации для разработчиков. - person stefgosselin; 27.10.2011

Хотя это не идеальный ответ на мой вопрос, эта статья:

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

немного помог. Кроме того, когда я просмотрел официальную документацию Sugar, я обнаружил, что руководство разработчика содержит некоторое объяснение того, как работает Sugar (хотя, очевидно, оно не столько сосредоточено на том, как работает Sugar, сколько на том, как заставить Sugar делать новые вещи).

Надеюсь, это поможет другим начинающим разработчикам Sugar.

person machineghost    schedule 23.10.2008

Этот код исходит из Smarty lib, а не напрямую из SugarCRM.

Возможно, этот документ chm будет немного полезен, http://code.google.com/p/sugardoc/downloads/list.

person Leon    schedule 06.11.2009

Вы также можете попробовать установить xdebug (расширение PHP) и выполнить код с помощью совместимой IDE, такой как eclipse или Komodo.

URL-адрес сообщает вам, к какому каталогу модуля осуществляется доступ и какое действие/представление. Под большинством модулей есть папка "views". Если его там нет, он либо использует представление MVC по умолчанию в папке include в сочетании с макетом метаданных, либо использует классическую архитектуру представления: index.php (listview), DetailView.php и EditView.php и шаблоны.

За последние пару лет многое изменилось к лучшему, поэтому я не уверен, что первый ответ (Нэк) все еще актуален. Это все еще довольно грубо по краям, но новый фреймворк Sugar — лучший друг PHP-хакера (действительно легко переопределить вещи в удобной для обновления манере). Это отлично подходит для компаний, у которых уже есть хакеры PHP и которым нужно только несколько улучшений. И найти доступных подрядчиков PHP, чтобы помочь, не так сложно (отказ от ответственности: я один). Я думаю, что это отличный инструмент, если вы работаете с открытым исходным кодом, вам просто нужна базовая CRM и у вас менее 100 пользователей.

person webXL    schedule 06.11.2009
comment
найти доступных подрядчиков PHP с хорошим пониманием SugarCRM должно быть сложно. То, что вы хорошо знаете php, не сильно поможет вам с SugarCRM. Sugar — очень большое, сложное php-приложение, требуется много времени, чтобы разобраться с SugarCRM (не говорю, что я понимаю или когда-нибудь действительно пойму Sugar). - person AntonioCS; 15.12.2009

tpl — это умные файлы шаблонов. Они используются при отображении данных на экране. Как я делаю свои процессы отладки, создаю много дампов var для ошибки lof или просто печатаю их на экране.

Также установите xdebug на сервер, это вам очень поможет. Sugar - это платформа mvc, поэтому узнайте, как это работает, и тогда будет намного проще.

взгляните на некоторые фрагменты, которые я публикую на www.eontek.rs

person Eitrix    schedule 18.10.2010
comment
если у вас есть минутка, не могли бы вы пожалуйста, пожалуйста посмотреть на вопрос, который я разместил во фрагменте вашего пользовательского поля, см. stackoverflow.com/questions/7924531/. Спасибо! - person stefgosselin; 28.10.2011

Если бы я столкнулся с той же проблемой, когда страница сведений об учетной записи не отображалась и выдавала внутреннюю ошибку 500. Я проверил, что он не был сгенерирован TPL. Сначала я проверил разрешения на эту папку, в моем случае они все были установлены. Поэтому я взял бэкап cache\modules\accounts\DetailView.tpl и вручную добавил поле, после этого все заработало. Каждый раз в режиме разработчика нужно вручную копировать этот файл. Это боль, но ответа до сих пор нет. Я спрашивал об этом на форумах, ошибках, в твиттере, не помогло. Кстати, мы используем Sugar Professional.

person sikk    schedule 28.09.2011

Я бы посоветовал убедиться, что это действительно ошибка кода, а не просто ошибка конфигурации. Вы добавляете поле через «Администратор»> «Студия»> «Контакты»> «Поля» или через API SOAP?

Вы используете последнюю версию Sugar?

Я действительно согласен с тем, что проект ужасно недодокументирован и не имеет руководств и примеров.

Я сам испытываю боли устаревшей/отсутствующей документации. Удачи!

person p3drosola    schedule 08.03.2010

$this — это ссылка на текущий объект.

class Test {

    var $tmp;

    function __construct() {
        $this->tmp = 42;    
    }
}
person Kevin    schedule 27.10.2008