• Sign in to follow this  
    Followers 0

    Рабочее место программиста 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 с официального сайта http://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 вы можете по прямой ссылке: http://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 http://github.com/salesagility/SuiteCRM.git

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

    $ git clone http://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 - http://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 идем на страницу выбора версий для скачивания: http://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  
    Followers 0


    User Feedback


    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