Jump to content
SpravkaCRM.ru - Ваш справочник по CRM
  • Sign in to follow this  

    Рабочее место программиста SuiteCRM


    SpravkaCRM.ru

     

    В данной статье я расскажу, как подготовить рабочий компьютер для начала работ с исходным кодом SuiteCRM. За основу будет взят компьютер с недавно установленной Windows 10. Я расскажу, какое программное обеспечение можно поставить и как его настроить для того, чтобы было комфортно работать с SuiteCRM в плане его адаптации под ваши нужды. Все программное обеспечение можно будет установить и использовать бесплатно без значимого ухудшения функционала.

    SuiteCRM - это веб-ориентированная CRM-система. Это значит, что SuiteCRM - это фактически тот же сайт, написанный на PHP с использованием базы данных MySQL! И работать он должен на таком же хостинге, на котором могут работать обычные сайты! По этому если вам хорошо знакомо веб-программирование на PHP и MySQL, объектно-ориентированное программирование и MVC, то разобраться с SuiteCRM будет несколько легче, чем без подобных знаний.

    Ну а для начинающих веб-программистов я все таки расскажу какой инструментарий потребуется для доработки SuiteCRM.

    Вот необходимый минимум средств, при помощи которых вы сможете дорабатывать SuiteCRM по своему усмотрению:

    1. Веб-сервер, развернутый у вас локально на компьютере, на котором вы сможете отлаживать ваши наработки
    2. Среда программирования (IDE), в которую вы загрузите ваш проект с SuiteCRM и сможете его дорабатывать
    3. Приложение для удобной работы с базой данных
    4. Cистема контроля версий на базе GIT

    Это самый необходимый минимум, который обязательно у вас должен быть.

    Если вкратце, то работать это будет следующим образом:

    • Вы устанавливаете у себя веб-сервер;
    • В папку, где должны храниться файлы CRM-системы, вы заливаете исходные файлы SuiteCRM (это могут быть файлы из архива с чистой системой, загруженной на официальном сайте SuiteCRM, но я в этой статье буду исходить из того, что исходные файлы SuiteCRM находятся уже в GIT-репозитории, и вы должны клонировать себе уже существующий проект).
    • Вы запускаете приложение по работе с PHP-проектами, настраиваете новый проект на работу с загруженными файлами и выполняете необходимые доработки; 
    • Результаты своих действий проверяете у себя локально на компьютере в браузере.

    Веб-сервер

    Веб-сервер, это совокупность программ, позволяющих на компьютере размещать веб-сайт и получать его содержимое при запросах из браузера. Это очень упрощенное моё вольное толкование )). По факту это связка из Apache + PHP + MySQL, которая устанавливается на вашем компьютере и настраивается таким образом, чтобы PHP-файлы CRM-системы работали как полноценный сайт.

    Существует масса способов заставить сайт заработать на локальной машине: можно поставить по отдельности каждый из компонентов (отдельно Apache, отдельно PHP и отдельно MySQL), а потом все это настраивать на совместную работу. Все приложения распространяются свободно и бесплатно. Но давайте не будем углубляться в дебри тонкой настройки веб-серверов, и возьмем решение, которое за нас произведет все необходимые настройки, и вполне хватит для начала работ. А если в дальнейшем потребуется более тонкая настройка - то вы сможете уже однозначно понимая что вам нужно и чего не хватает в предлагаемом мной варианте выполнить установку веб-сервера по другому. Ну а сейчас - MAMP! MAMP - это бесплатная сборка Apache + MySQL + PHP с упрощенной процедурой установки и настройки. То, что как раз нужно начинающему веб-программисту!

    Качаем последнюю бесплатную версию MAMP с официального сайта https://www.mamp.info:

    56939521e07c7_2016-01-1114-41-58Windows1

    После того, как скачаете приложение, запустите его и пройдите не сложную процедуру установки: классический NEXT-NEXT-OK (соглашаемся со всеми настройками по-умолчанию и давим постоянно кнопку "Далее").

    После успешной установки на рабочем столе у вас должны появиться иконки MAMP и MAMP PRO. Для начала нам будет достаточно бесплатно распространяемого MAMP, а в дальнейшем, если будет такое желание, сможете приобрести MAMP PRO и пользоваться более расширенными возможностями по настройке вашего веб-сервера.

    Итак, запускаем на рабочем столе ярлык MAMP. Веб-сервер можно запускать/останавливать кнопкой Start Servers и Stop Servers. MAMP по умолчанию создает папку с файлами и кладет туда какие то тестовые PHP-скрипты. Их работу можно увидеть, если нажать кнопку Open start page:

    56939c25a51f5_2016-01-1115-12-06Windows1

    Чтобы веб-сервер корректно отдавал файлы, они должны быть расположены в корневой папке веб-сервера. Согласно настройкам по-умолчанию для MAMP такой папкой является C:\MAMP\htdocs Таким образом надо файлы SuiteCRM размещать в этой папке. И тогда при запросе в браузере адреса http://localhost ваш веб-сервер будет корректно отображать результаты работы CRM-системы.

    Система управления версиями (GIT)

    В рамках этой статьи я не буду рассматривать почему именно GIT, а не Subversion (SVN) или например Mercurial. Просто GIT. Что лучше и для чего вы сможете потом самостоятельно понять исследуя эту тематику. Распишу лишь для чего вообще нужна система управления версиями. Итак:

    GIT нужен для того, чтобы выгружать ваши наработки в CRM на сервер и заливать себе наработки других программистов!

    То есть выберете CRM-систему, загружаете ее себе на свой локальный сервер, дорабатываете функционал так, как вам того хочется, и выгружаете обратно свои наработки чтобы они применились на основном сервере, где работает эта CRM-система. С одной стороны вы по идее могли бы это сделать и при помощи обычного FTP-клиента, но есть ряд "НО", который мешает такому подходу:

    • Если вы отредактируете не один-два файла, а много файлов в разных папках, то вы просто забудете какие файлы вы редактировали и через FTP можете выгрузить не все изменения. GIT за вас помнит и точно знает где что вы изменяли, и вам не надо о этом помнить и как то заботиться, чтобы все ваши изменения попали на рабочий сервер.
    • Вы конечно можете после своих изменений выгрузить ВЕСЬ проект по FTP на удаленный сервер. Но тут встают две проблемки: Проблема №1 - это просто долго. В SuiteCRM порядка 30 мегабайт и несколько десятков тысяч файлов. Для какой то небольшой модификации выгружать весь проект - это доооооооолго. Проблема №2 - выгрузкой по FTP вы легко можете затереть работу других программистов, работающих на этом проекте! Если вы один единственный обслуживаете CRM-систему - то все немного проще: изменения могут в систему прийти только от вас и никому ничего вы не затрете (ну разве что юзеры успеют что то сделать в Студии пока вы допиливали систему, и вы благополучно затрете все их старания слив свою версию папки custom). А вот если над проектом работают и другие программисты, то очень даже вероятна ситуация, когда вы слили себе проект, следом за вами его слил другой программист. потом вы сделали необходимые изменения и залили свои файлы обратно. а другой программист чуть позже тоже залил свои файлы обратно. но в его файлах нет тех изменений, что вы добавляли. и потому он просто своими файлами затирает ваши наработки. Все! Ваша работа затерта, ничего не работает и глючит! От этого нас и избавляет GIT: он корректно сливает изменения разных программистов даже в рамках одного файла, ну или сообщает о конфликтах и предлагает их разобрать.
    • И с GIT удобнее работать с удаленным сервером: можно настроить так называемый deploy, и закончив работу с файлами у себя на локальном компьютере они автоматически попадают на удаленный сервер! не надо заходить на сервер и что либо там делать - все произойдет автоматически

    В общем GIT отличная система, позволяющая работать с исходным кодом и избавляющая программиста от огромной части рутинной работы по выявлению глюков, связанных с переносом доработанного кода.

    Скачать GIT вы можете по прямой ссылке: https://git-scm.com/download/win

    Автоматически начнется скачивание приложения (примерно 30 мегабайт). Далее запускаете скачанный дистрибутив. Установка также не отличается сложностью: соглашаемся со всеми установками, выставленными по умолчанию дойдя до конца мастера установки. По окончанию установщик просто закончит свою работу ничего не запустив. Этого и не требуется: GIT - это не какое то отдельное приложение. Это штука просто добавляется в систему и дополняет собой менюшку когда вы щелкаете правой клавишой по папкам в системе:

    5693af5b81e39_2016-01-1116-34-00Windows1

    Это говорит о том, что GIT был корректно установлен, и теперь его можно использовать в дальнейших работах с CRM-системой.

    Давайте теперь в качестве тестирования установим последнюю версию SuiteCRM при помощи GIT. Для этого мы можем клонировать себе на локальный компьютер в корневую папку нашего веб-сервера проект SuiteCRM из GitHub. Для этого откройте в Проводнике Windows папку C:\MAMP\htdocs и кликните на ней правой клавишей мыши. В появившемся меню выберите Git Bash Here. Это откроет терминал с возможностью ввода команд git. Введите в командной строке такую команду:

    git clone https://github.com/salesagility/SuiteCRM.git

    Эта команда произведет копирование всех файлов SuiteCRM из репозитория на ваш компьютер. Дождитесь завершения копирования (должно появиться примерно следующее):

    $ git clone https://github.com/salesagility/SuiteCRM.git
    Клонирование в «SuiteCRM»…
    remote: Counting objects: 35738, done.
    remote: Compressing objects: 100% (299/299), done.
    remote: Total 35738 (delta 128), reused 0 (delta 0), pack-reused 35423
    Получение объектов: 100% (35738/35738), 42.21 MiB | 882.00 KiB/s, готово.
    Определение изменений: 100% (20760/20760), готово.
    Проверка соединения… готово.
    Распаковка файлов: 100% (10643/10643), готово.

    В результате в корневой папке веб-сервера C:\MAMP\htdocs появится подпапка с исходными кодами SuiteCRM:

    5693d603f1736_2016-01-1119-11-32Windows1

    Теперь у вас есть SuiteCRM на вашем компьютере. Нужно лишь его настроить для работы.

    Среда программирования в PHP (IDE)

    Чисто теоретически вы можете разрабатывать сайты используя Блокнот! У меня даже был хороший знакомый, который умудрился написать аналог avto.ru в vi (это такой редактор для командной строки в linux). На самом деле программисту должно быть удобно работать с кодом. И если ему в Блокноте комфортно - да ради бога! Но это должен быть осознанный выбор того или иного программиста, что он отказался от программного обеспечения, целенаправленно созданного для разработки программ на PHP в угоду каким то своим представлениям о идеальной среде программирования.

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

    Вот лично я работаю в PHPStorm от JetBrains. Мне очень нравится эта система! Я в ней работаю не первый год и очень к ней привык! На самом деле мне наверное в ежедневной работе нужна только 10-ая (а может и 100-ая) часть всего того функционала, что присутствует в этом приложении:

    • Подсветка синтаксиса, используемых переменных;
    • Возможность кликнув на функцию или свойство перескочить в участок кода, где эта функция или свойство описываются;
    • Индексация всего проекта, и, как следствие, мгновенный поиск по всему проекту с подсветкой найденных участков кода;
    • Возможность как создать локальный проект, так и снять копию с проекта на сервере и вносить правки на удаленный сервер просто сохранив локальный файл;
    • И много других плюшек с разным уровнем использования.

    Но это приложение распространяется платно. Цена порядка $90 для персонального использования, а продление вроде еще дешевле. В цену входит поддержка на год (бесплатные обновления, которые случаются весьма регулярно). Так что лично мои рекомендации по тому, в чем будет комфортно работать с SuiteCRM - то это PHPStorm.

    Но я вижу в качестве задачи текущей статьи - рассказать как начать работать с SuiteCRM с минимальными затратами по деньгам и времени погружения в рабочий процесс имея лишь желание и чистую Windows. Потому для анализа мы тут будем использовать другую не менее популярную, но уже бесплатную IDE - NetBeans IDE!

    NetBeans IDE - это приложение для программирования на разных языках. И на PHP в том числе. Несколько моих знакомых веб-программистов успешно работают на NetBeans и вполне им довольны. NetBeans также подсвечивает PHP-код, поддерживает работу с удаленными серверами и работу с кодом через GIT.

    Для установки NetBeans идем на официальный сайт в раздел PHP Development - https://netbeans.org/features/php/

    Здесь вверху страницы нажимаем кнопку Download. Открывается страница с выбором редакции для скачивания и установки. Нам нужна версия NetBeans для PHP:

    2016-01-11 18-21-39 Windows10 [Running].png

    Скачиваем её и устанавливаем.

    Установка не отличается какими-либо особенностями и все происходит достаточно стандартно: соглашаемся со всеми установками по-умолчанию, жмем кнопку "Далее" до тех пор, пока установщик не дойдет до финиша. В результате установки на рабочем столе появится значек запуска NetBeans.

    Теперь мы можем комфортно редактировать файлы SuiteCRM, которые ранее закачали на наш компьютер при помощи GIT:

    • Запускаете ярлык NetBeans на рабочем столе;
    • Когда NetBeans загрузится, мы должны создать новый проект с файлами SuiteCRM. Для этого выбираем в меню File -> New Project
    • В открывшемся окошке указываем, что создаем PHP Application:5693dcb22d9f8_2016-01-1119-47-26Windows1
    • В следующем окошке мы указываем в качестве названия проекта: SuiteCRM, и также обязательно указываем путь до папки с файлами проекта:5693dd29a588d_2016-01-1119-49-16Windows1
    • Ну а дальше ничего нигде можно не указывать и согласиться с настройками по-умолчанию. В результате будет создан новый проект и все исходные файлы SuiteCRM будут в него загружены и проиндексированы:5693ddc7ea8a9_2016-01-1119-52-11Windows1

    Ура! Теперь вы можете вносить свои изменения в SuiteCRM и наблюдать результат своей работы! Для этого необходимо в браузере открыть адрес http://localhost/SuiteCRM/

    Для только что загруженной SuiteCRM будет открыта страница установки CRM-системы:

    5693df096007a_2016-01-1119-57-08Windows1

    Правда я заметил, что в этой версии SuiteCRM отсутствует русский язык (внизу там на скриншете видно пункт Choose your language). Но так как данная статья о том, как начать программировать в SuiteCRM, а не как установить бесплатную руссифицированную SuiteCRM, то мы на этом не будем заострять внимание. Тем более что SuiteCRM на русском можно скачать на официальном сайте SuiteCRM, а все, что описано в этой статье, пригодится и для установки SuiteCRM из архива, а не из GIT.

     

    Работа с MySQL

    При работе с SuiteCRM вы часто будете взаимодействовать с базой данных. При чем не в виде запросов, а именно обращаться к структуре базы данных, смотреть наличие и названия тех или иных таблиц в ней и полей в таблицах. Так же весьма часто прийдется отлаживать ваши скрипты путем анализа SQL-запросов: вы создаете какой то SQL-запрос, и выполняете его напрямую в базе данных. Это быстро и удобно.

    Пожалуй наибольшую популярность получил PHPMyAdmin, как средство доступа к базе данных. Я предполагаю что популярность его объясняется бесплатностью, неплохим функционалом, легкостью установки (а зачастую он уже идет в составе тех или иных компонентов устанавливаемого веб-сервера). Где на сервере есть Apache+PHP+MySQL, значит там будет работать и PHPMyAdmin, ведь он написан на PHP, а значит это тот же сайт, только задача которого - получить доступ к базе данных.

    Но у PHPMyAdmin в какой то момент времени я выявил ряд недостатков, которые лично для меня стали решающими для того, чтобы я вычеркнул PHPMyAdmin из списка инструментов, которыми я ежедневно пользуюсь при работе с SuiteCRM:

    1. Пожалуй самое главное: в PHPMyAdmin нельзя сохранять в разных окнах разные SQL-запросы! В качестве примера: Ищем мы какую то ошибку в работе SuiteCRM. При разборе того или иного функционала мы ставим отображение SQL-запросов, отправляемых в базу данных. И мы допустим хотим эти запросы выполнить в базе данных и посмотреть, что она вернет в ответ. И таких запросов может быть несколько в рамках решения одной проблемы. Удобно, когда мы можем открыть нужное кол-во вкладок с SQL-запросами, и эти SQL-запросы там разместить, выполнить их, как то модернизировать, даже уйти со страницы выполнения SQL-запроса, чтобы посмотреть содержимое какой то таблицы, вернуться обратно и опять продолжить работу с нашими ранее сохраненными SQL-запросами. Это все происходит достаточно часто при отладке SuiteCRM. А PHPMyAdmin такую возможность не предоставлял (во всяком случае тогда давно, когда я от него отказался, может сейчас ситуация изменилась?).
    2. PHPMyAdmin нужно устанавливать на сервер. Не всегда бывает возможным подключиться к удаленной базе данных только по ее IP. Не все сервера позволяют внешнее подключение к базам данных. Нужно залить файлы, позаботиться о разрешениях на файлы (chmod и chown), возможно еще будут требоваться еще какие то настройки. Это все какое то не удобное. Хочется иметь возможность подключаться к новым базам данных в пару кликов, ну или с наименьшими телодвижениями.
    3. Ну и на конец лично я для себя определил, что мне очень не комфортно, когда дважды кликнув по названию таблицы или по названию поля в таблице я не могу получить это название, заключенное в апострафы: `table_name`. Кликая по названиям я очень быстро получаю их в буфер обмена и могу быстро вставить в создаваемый мной SQL-запрос. Зачастую таблицы имеют весьма заковыристые длинные названия, связи этих таблиц имеют еще более заковыристые названия, а поля в таблицах связи вообще какая то абра-кадабра елеопределяемая что куда. Потому точное указание названия таблиц и полей, и при этом БЫСТРОЕ указание - вполне себе проблема, решение которой позволит значительно увеличить скорость вашей работы и уменьшить количество багов, вызванных синтаксическими ошибками.

    В общем после того, как я познакомился с SQLYog, моя жизнь в веб-дизайне уже не была прежней )))

    SQLYog - это Windows-приложение, которое позволяет собрать в одном месте доступы к самым разным базам данных моих клиентов. Вот примерный перечень того, за что я полюбил SQLYog:

    1. Одно приложение для всех доступных мне баз данных. Не надо вспоминать где какой пароль на каком сервере. Один раз сохранил настройки доступа и все. Удобно!
    2. Подключение базы данных на удаленном сервере можно выполнить или указав SSH-доступ к этому серверу + доступ к базе данных, или, если нет SSH-доступа (что бывает не часто), скачав 1 (один) PHP-файл на удаленный сервер указать его в виде туннеля. Это реально быстро и Удобно!
    3. Веб-сайт всегда проигрывал в скорости работы обычным приложениям. Приложения - это быстрая работа с ними. Удобно!
    4. SQL-запросы можно сохранять в отдельных вкладках. При этом можно внутри одной вкладки запускать отдельные SQL-запросы просто выделив их мышкой. Удобно!
    5. Кликая на название таблицы или поля оно появляется в окне редактора SQL-запросов. Оттуда я его копирую (да здравствует горячие клавиши) и использую в дальнейшем при построении SQL-запросов при отладке SuiteCRM. Это Удобно!
    6. В SQLYog есть СУПЕР-МЕГА-удобная вещь: копирование базы данных и отдельных таблиц! Подключаемся сразу к двум разным базам данных (например, к своей локальной базе данных и к базе удаленной CRM-системы), и в пару кликов можем закачать себе удаленную базу данных на свой компьютер. Это действительно оооочень удобно. Не надо заморачиваться с архивами или еще чем то. Указал откуда качаем, указал куда качаем, нажал кнопку и понеслась. А если есть таблицы с очень большим размером (например, зачастую, таблица emails_text содержит весь тот спам, который сыпется в почтовые ящики, подключеныне к SuiteCRM, и можно галочкой убрать эту таблицу чтобы закачка происходила быстрее). Очень Удобно!
    7. Ну и все остальные плюшки, типа просмотра содержимого базы данных, редактора таблиц и индексов и тд и тп.

    SQLYog является платным продуктом и стоит $99 на одного пользователя в минимальной комплектации. Или можно скачать триал-версию с официального сайта. Но мы тут пишем как начать программировать под SuiteCRM с минимальными временными и денежными затратами. По этому я предлагаю для начала воспользоваться бесплатной версией SQLYog Community Edition, которая распространяется бесплатно и имеет почти весь функционал, который я тут описал. Главное, что эта бесплатная версию SQLYog-а оказалась на порядок (а то и больше) удобнее того, что в то время предлагал PHPMyAdmin, и этого стало достаточно, чтобы я забыл PHPMyAdmin как страшный сон и больше никогда ничего другого и не искал, когда речь касалась при помощи чего я буду работать с базами данных на MySQL. 

    Для установки SQLYog CE идем на страницу выбора версий для скачивания: https://code.google.com/p/sqlyog/wiki/Downloads

    Качаем нужную вам версию (под винду я ставил SQLyog Community Edition - 12.09 (64-Bit)). Весит она что то около 10 мегабайт. После закачки запускаем файл установщика. Установка также не чем не выделяется из общего ряда: NEXT-NEXT-OK, то есть соглашаемся со всеми настройками по умолчанию и постоянно давим "Дальше" пока установка не будет окончательно выполнена.

    По завершении установки у вас на рабочем столе появится ярлык SQLYog, при нажати на который вы сможете запускать его.

    При первом запуске приложение попросит вас создать подключение. Давайте подключимся к нашей локальной базе данных. Для этого нажимаем кнопку New и указываем название нашего подключения localhost (но можете тут обзывать как угодно):

    5694cca5e1b25_2016-01-1212-51-11Windows1

    Далее вам нужно указать название хоста, имя пользователя и пароль подключения к базе данных. Название хоста - как правило это localhost. Имя пользователя и пароль понятное дело у каждого сервера свои, а у нас с нашим установленным и запущенным MAMP имя пользователя = root, пароль = root:

    5694cd2b80926_2016-01-1212-53-13Windows1

    Убедиться в том, что все данные указаны верно, вы можете нажав кнопку внизу Test Connection. Если все верно, то приложение покажет всплывающую плашку с версией MySQL, к которой вы подключаетесь. А если что то указано не верно, то будет долго-долго не отображать ничего, а потом выкинет сообщение с ошибкой подключения.

    Сохраните это ваше подключение, и в дальнейшем, вы сможете быстро его открывать просто выбрав в списке доступных подключений!

     

    Ну вот вроде все, что хотелось сказать про базовый набор программиста, желающего освоить работу с SuiteCRM. Работа с качественным инструментом должна приносить только удовольствие от работы. Это касается всех сфер деятельности человека, и программирование тут не исключение. В этой статье я лишь поверхностно рассмотрел основную идею: что нужно программисту для работы с SuiteCRM. В каждом из рассмотренных инструментариев можно бесконечно долго углубляться в тонкости его настройки, принципы работы и так далее. Если у вас возникнуть какие-либо вопросы по этому материалу, я с удовольствием на них отвечу!

     

     

    Sign in to follow this  


    User Feedback

    Recommended Comments

    There are no comments to display.



    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×