Здравейте, Казвам се Христо Христов и това е тестовата ми задача за кандидатстване за работа в webest.bg.
Да се изчисляват по зададени координати и радиус - броя магазини в района.
Фреймърка инсталирах през Netbeans. Използвах jQuery, AJAX с JSON заявки и CSS. За попълването и създаването на таблиците в базата данни използвах - Doctrine. Въвеждането на MySQL функцията извърших през конзолата, а SELECT заявката - с чиста PDO конекция. Използвах контролерите на entity-та за лист на целите таблици, с използването на сървиси. Js и css файловете инклуднах с assets. Написах и един тестов файл (MyCalculatorTest.php). За съжаление - за момента нямам платен хостин и не можах да кача проекта в интернет.
Чрез mysql функция изчислявам дистанцията според координатите на клиента за всеки магазин. Функцията се записва еднократно в mysql сървъра и след това това се извиква с обикновена SELSCT заявка. Единственото нещо което смята php в крайна сметка е да отдели кои магазини са с дистанция по-малка от радиуса.
Представям ви кода на функцията:
```mysql
mysql> DELIMITER $$
> CREATE FUNCTION calcDistance(longitude INT, latitude INT,
> cl_lon INT, cl_lat INT) RETURNS DECIMAL(9,2)
> BEGIN
> DECLARE distance DECIMAL(9,2);
> SET distance = SQRT(ABS(cl_lon - longitude) * ABS(cl_lon - longitude) +
> ABS(cl_lat - latitude) * ABS(cl_lat - latitude));
> RETURN distance;
> END$$
> DELIMITER;
```
и заявката:
```mysql
mysql> SELECT *, calcDistance(`longitude`, `latitude`,
> 100000, 100000) AS distance
> FROM `Shop`
> WHERE distance < 200;
```
Смея да твърдя, че за пет дни се запознах с принципите на програмиране със Symfony. Това е доста сложен и упорит фреймуърк. И много боли като прекалиш с конзолните команди :–(. Всяко ново начало е учене и приключение. Радвам се, че трудът ми се оценява от все повече хора.
И накрая - искам да благодаря на екипа на webest.bg - за гласуваното ми доверие!
Всеки може да използва кода - както му харесва.