Search the Community
Showing results for tags 'программирование для suitecrm'.
Found 1 result
-
Sort By
- Date
- Relevancy
-
В данной статье я расскажу, как подготовить рабочий компьютер для начала работ с исходным кодом SuiteCRM. За основу будет взят компьютер с недавно установленной Windows 10. Я расскажу, какое программное обеспечение можно поставить и как его настроить для того, чтобы было комфортно работать с SuiteCRM в плане его адаптации под ваши нужды. Все программное обеспечение можно будет установить и использовать бесплатно без значимого ухудшения функционала. SuiteCRM - это веб-ориентированная CRM-система. Это значит, что SuiteCRM - это фактически тот же сайт, написанный на PHP с использованием базы данных MySQL! И работать он должен на таком же хостинге, на котором могут работать обычные сайты! По этому если вам хорошо знакомо веб-программирование на PHP и MySQL, объектно-ориентированное программирование и MVC,то разобраться с SuiteCRM будет несколько легче, чем без подобных знаний. Ну а для начинающих веб-программистов я все таки расскажу какой инструментарий потребуется для доработки SuiteCRM. Вот необходимый минимум средств, при помощи которых вы сможете дорабатывать SuiteCRM по своему усмотрению: Веб-сервер, развернутый у вас локально на компьютере, на котором вы сможете отлаживать ваши наработки Среда программирования (IDE), в которую вы загрузите ваш проект с SuiteCRM и сможете его дорабатывать Приложение для удобной работы с базой данных 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: После того, как скачаете приложение, запустите его и пройдите не сложную процедуру установки: классический NEXT-NEXT-OK (соглашаемся со всеми настройками по-умолчанию и давим постоянно кнопку "Далее"). После успешной установки на рабочем столе у вас должны появиться иконки MAMP и MAMP PRO. Для начала нам будет достаточно бесплатно распространяемого MAMP, а в дальнейшем, если будет такое желание, сможете приобрести MAMP PRO и пользоваться более расширенными возможностями по настройке вашего веб-сервера. Итак, запускаем на рабочем столе ярлык MAMP. Веб-сервер можно запускать/останавливать кнопкой Start Servers и Stop Servers. MAMP по умолчанию создает папку с файлами и кладет туда какие то тестовые PHP-скрипты. Их работу можно увидеть, если нажать кнопку Open start page: Чтобы веб-сервер корректно отдавал файлы, они должны быть расположены в корневой папке веб-сервера. Согласно настройкам по-умолчанию для 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 - это не какое то отдельное приложение. Это штука просто добавляется в систему и дополняет собой менюшку когда вы щелкаете правой клавишой по папкам в системе: Это говорит о том, что 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: Теперь у вас есть 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: Скачиваем её и устанавливаем. Установка не отличается какими-либо особенностями и все происходит достаточно стандартно: соглашаемся со всеми установками по-умолчанию, жмем кнопку "Далее" до тех пор, пока установщик не дойдет до финиша. В результате установки на рабочем столе появится значек запуска NetBeans. Теперь мы можем комфортно редактировать файлы SuiteCRM, которые ранее закачали на наш компьютер при помощи GIT: Запускаете ярлык NetBeans на рабочем столе; Когда NetBeans загрузится, мы должны создать новый проект с файлами SuiteCRM. Для этоговыбираем в меню File -> New Project В открывшемся окошке указываем, что создаем PHP Application: В следующем окошке мы указываем в качестве названия проекта: SuiteCRM, и также обязательно указываем путь до папки с файлами проекта: Ну а дальше ничего нигде можно не указывать и согласиться с настройками по-умолчанию. В результате будет создан новый проект и все исходные файлы SuiteCRM будут в него загружены и проиндексированы: Ура! Теперь вы можете вносить свои изменения в SuiteCRM и наблюдать результат своей работы! Для этого необходимо в браузере открыть адрес http://localhost/SuiteCRM/ Для только что загруженной SuiteCRM будет открыта страница установки CRM-системы: Правда я заметил, что в этой версии SuiteCRM отсутствует русский язык (внизу там на скриншете видно пункт Choose your language). Но так как данная статья о том, как начать программировать в SuiteCRM, а не как установить бесплатную руссифицированную SuiteCRM, то мы на этом не будем заострять внимание. Тем более что SuiteCRM на русском можно скачать на официальном сайте SuiteCRM, а все, что описано в этой статье, пригодится и для установки SuiteCRM из архива, а не из GIT. Работа с MySQL При работе с SuiteCRM вы часто будете взаимодействовать с базой данных. При чем не в виде запросов, а именно обращаться к структуре базы данных, смотреть наличие и названия тех или иных таблиц в ней и полей в таблицах. Так же весьма часто прийдется отлаживать ваши скрипты путем анализа SQL-запросов: вы создаете какой то SQL-запрос, и выполняете его напрямую в базе данных. Это быстро и удобно. Пожалуй наибольшую популярность получил PHPMyAdmin, как средство доступа к базе данных. Я предполагаю что популярность его объясняется бесплатностью, неплохим функционалом, легкостью установки (а зачастую он уже идет в составе тех или иных компонентов устанавливаемого веб-сервера). Где на сервере есть Apache+PHP+MySQL, значит там будет работать и PHPMyAdmin, ведь он написан на PHP, а значит это тот же сайт, только задача которого - получить доступ к базе данных. Но у PHPMyAdmin в какой то момент времени я выявил ряд недостатков, которые лично для меня стали решающими для того, чтобы я вычеркнул PHPMyAdmin из списка инструментов, которыми я ежедневно пользуюсь при работе с SuiteCRM: Пожалуй самое главное: в PHPMyAdmin нельзя сохранять в разных окнах разные SQL-запросы! В качестве примера: Ищем мы какую то ошибку в работе SuiteCRM. При разборе того или иного функционала мы ставим отображение SQL-запросов, отправляемых в базу данных. И мы допустим хотим эти запросы выполнить в базе данных и посмотреть, что она вернет в ответ. И таких запросов может быть несколько в рамках решения одной проблемы. Удобно, когда мы можем открыть нужное кол-во вкладок с SQL-запросами, и эти SQL-запросы там разместить, выполнить их, как то модернизировать, даже уйти со страницы выполнения SQL-запроса, чтобы посмотреть содержимое какой то таблицы, вернуться обратно и опять продолжить работу с нашими ранее сохраненными SQL-запросами. Это все происходит достаточно часто при отладке SuiteCRM. А PHPMyAdmin такую возможность не предоставлял (во всяком случае тогда давно, когда я от него отказался, может сейчас ситуация изменилась?). PHPMyAdmin нужно устанавливать на сервер. Не всегда бывает возможным подключиться к удаленной базе данных только по ее IP. Не все сервера позволяют внешнее подключение к базам данных. Нужно залить файлы, позаботиться о разрешениях на файлы (chmod и chown), возможно еще будут требоваться еще какие то настройки. Это все какое то не удобное. Хочется иметь возможность подключаться к новым базам данных в пару кликов, ну или с наименьшими телодвижениями. Ну и на конец лично я для себя определил, что мне очень не комфортно, когда дважды кликнув по названию таблицы или по названию поля в таблице я не могу получить это название, заключенное в апострафы: `table_name`. Кликая по названиям я очень быстро получаю их в буфер обмена и могу быстро вставить в создаваемый мной SQL-запрос. Зачастую таблицы имеют весьма заковыристые длинные названия, связи этих таблицимеют еще более заковыристые названия, а поля в таблицах связи вообще какая то абра-кадабра елеопределяемая что куда. Потому точное указание названия таблиц и полей, и при этом БЫСТРОЕ указание - вполне себе проблема, решение которой позволит значительно увеличить скорость вашей работы и уменьшить количество багов, вызванных синтаксическими ошибками. В общем после того, как я познакомился с SQLYog, моя жизнь в веб-дизайне уже не была прежней ))) SQLYog - это Windows-приложение, которое позволяет собрать в одном месте доступы к самым разным базам данных моих клиентов. Вот примерный перечень того, за что я полюбил SQLYog: Одно приложение для всех доступных мне баз данных. Не надо вспоминать где какой пароль на каком сервере. Один раз сохранил настройки доступа и все. Удобно! Подключение базы данных на удаленном сервере можно выполнить или указав SSH-доступ к этому серверу + доступ к базе данных, или, если нет SSH-доступа (что бывает не часто), скачав 1 (один) PHP-файл на удаленный сервер указать его в виде туннеля. Это реально быстро и Удобно! Веб-сайт всегда проигрывал в скорости работы обычным приложениям. Приложения - это быстрая работа с ними. Удобно! SQL-запросы можно сохранять в отдельных вкладках. При этом можно внутри одной вкладки запускать отдельные SQL-запросы просто выделив их мышкой. Удобно! Кликая на название таблицы или поля оно появляется в окне редактора SQL-запросов. Оттуда я его копирую (да здравствует горячие клавиши) и использую в дальнейшем при построении SQL-запросов при отладке SuiteCRM. Это Удобно! В SQLYog есть СУПЕР-МЕГА-удобная вещь: копирование базы данных и отдельных таблиц! Подключаемся сразу к двум разным базам данных (например, к своей локальной базе данных и к базе удаленной CRM-системы), и в пару кликов можем закачать себе удаленную базу данных на свой компьютер. Это действительно оооочень удобно. Не надо заморачиваться с архивами или еще чем то. Указал откуда качаем, указал куда качаем, нажал кнопку и понеслась. А если есть таблицы с очень большим размером (например, зачастую, таблица emails_text содержит весь тот спам, который сыпется в почтовые ящики, подключеныне к SuiteCRM, и можно галочкой убрать эту таблицу чтобы закачка происходила быстрее). Очень Удобно! Ну и все остальные плюшки, типа просмотра содержимого базы данных, редактора таблиц и индексов и тд и тп. 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 (но можете тут обзывать как угодно): Далее вам нужно указать название хоста, имя пользователя и пароль подключения к базе данных. Название хоста - как правило это localhost. Имя пользователя и пароль понятное дело у каждого сервера свои, а у нас с нашим установленным и запущенным MAMP имя пользователя = root, пароль = root: Убедиться в том, что все данные указаны верно, вы можете нажав кнопку внизу Test Connection. Если все верно, то приложение покажет всплывающую плашку с версией MySQL, к которой вы подключаетесь. А если что то указано не верно, то будет долго-долго не отображать ничего, а потом выкинет сообщение с ошибкой подключения. Сохраните это ваше подключение, и в дальнейшем, вы сможете быстро его открывать просто выбрав в списке доступных подключений! Ну вот вроде все, что хотелось сказать про базовый набор программиста, желающего освоить работу с SuiteCRM. Работа с качественным инструментом должна приносить только удовольствие от работы. Это касается всех сфер деятельности человека, и программирование тут не исключение. В этой статье я лишь поверхностно рассмотрел основную идею: что нужно программисту для работы с SuiteCRM. В каждом из рассмотренных инструментариев можно бесконечно долго углубляться в тонкости его настройки, принципы работы и так далее. Если у вас возникнуть какие-либо вопросы по этому материалу, я с удовольствием на них отвечу!
-
- программирование для suitecrm
- suitecrm
- (and 1 more)