<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های amir salkhori</title>
        <link>https://virgool.io/feed/@amiryarke</link>
        <description>01000001011011010110100101110010001000000101001101100001011011000110101101101000011011110111001001101001</description>
        <language>fa</language>
        <pubDate>2026-04-15 10:00:59</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/129992/avatar/gC4yAL.png?height=120&amp;width=120</url>
            <title>amir salkhori</title>
            <link>https://virgool.io/@amiryarke</link>
        </image>

                    <item>
                <title>طریقه جستجو در polygon</title>
                <link>https://virgool.io/@amiryarke/%D8%B7%D8%B1%DB%8C%D9%82%D9%87-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%AF%D8%B1-polygon-lnnc1iommxfz</link>
                <description>سلام به دوستان گلم در پست قبلی طریقه ساخت یکی از نوع های geometry و توضیح دادم که به چه صورت ما میتونیم یه فیلد از نوع polygon داشته باشیم.در این پست قصد دارم تا به نحوه جستجو در Polygon بپردازم که به چه صورت ما میتونیم یک نقطه را در polygon خود جستجو کنیم.    postgis دارای متدهای مختلفی هست که شما میتونید وارد سایت رسمی آن شوید و متدهای مختلف آن را مشاهده کنید. و براساس نوع جستجوی که میخواید انجام دهید متد مناسب آن را انتخاب کنید. مثالی که اینجا میخوام بزنم در doctrine  orm هست. من در این مثال قصد دارم ُ ببینم نقطه ای که وارد میشود در محیط polygon قرار دارد یا نه؟برای این کار از متد intersect استفاده میکنم.خیلی ساده  اینکار انجام میشه. فقط کافیه متدهای مربوطه را فراخوانی کنیم به صورت زیر بنویسیم. 
st_intersects(sp_makePoint(:lat, :lng) , z.area) = true)
 lat و long ورودی ها هستن که ما از سمت کاربر دریافت میکنیم  area: فیلد polygon ما هست.      

public function searchPostalCodePolygon( $zipLat, $ziplong)
{
    return $this-&gt;createQueryBuilder(&#039;d&#039;)
-&gt;select([
    &#039;d&#039;,
])
-&gt;andWhere(&amp;quot  (st_intersects(sp_makePoint(:lat, :long) , d.area) = true)&amp;quot)
-&gt;setParameter(&#039;lat&#039;, $zipLat)
-&gt;setParameter(&#039;long&#039;, $ziplng)
-&gt;getQuery()
-&gt;getResult();
}به همین سادگی میتوانیم درون یک polygon جستجو کنیمممنون که تا اینجا همراهم بودید و امیدوارم که مفید واقع شده باشد.با تشکر امیر سلخوری هستم توسعه دهنده.01000001011011010110100101110010001000000101001101100001011011000110101101101000011011110111001001101001</description>
                <category>amir salkhori</category>
                <author>amir salkhori</author>
                <pubDate>Fri, 14 May 2021 14:53:20 +0430</pubDate>
            </item>
                    <item>
                <title>استفاده از type های geometric در سیمفونی(polygon)</title>
                <link>https://virgool.io/@amiryarke/%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-type-%D9%87%D8%A7%DB%8C-geometric-%D8%AF%D8%B1-%D8%B3%DB%8C%D9%85%D9%81%D9%88%D9%86%DB%8Cpolygon-ziw6ebxqvgvc</link>
                <description>با سلام و وقت بخیردر این پست میخوام در مورد یکی از نوع های geometric به نام polygon صحبت کنم.چند وقت پیش تو یک پروژه ای که مربوط به مختصات جغرافیایی بود و در این پروژه قرار بود که کاربر با موبایل مختصات زمینی و ثبت کنه به اصطلاح نقطه زنی کنه و به صورت Polygon بفرسته و ما هم در دیتابیس ذخیره کنیم کار میکردم.خودم قبلا تجربه کار با type های geometric و نداشتم و با جستجوهای که انجام دادم با یه پکیج آشنا شدم که برای doctrine هست و اسمش alexandret/doctrine2-spatial هست آشنا شدم که نوع های geometric رو هندل میکنه.این پکیج و نصب کردم و ازش استفاده کردم،دیتابیس من MySQL بود و مختصاتی و که وارد میکردم در دیتابیس ذخیره میکرد ولی مشکلی که وجود داشت شمای نقشه رو نمایش نمیداد و فقط نقطه های که زده بودم را رسم میکرد. وقتی ما از نوع polygon استفاده میکنیم همراه با lat , long های که میفرستیم یه srid و هم باید بفرستیم که یک کد جنرال هست که همیشه باید فرستاده بشه، این کد در MySql به صورت null ذخیره میشد و این مشکل را با سوئیچ دیتابیس به سمت PostgreSQL حل کردم.حالا بریم ببینیم به چه صورت میتوانیم از این پکیج استفاده کنیم.1- نصببرای نصب پکیج کافیست پکیج alexandret / spatial2-doctrine را در composer.json خود اضافه کنید$ composer require alexandret/doctrine2-spatialاگر از composer نمیخواهید استفاده کنید می توانید با کلیک به روی لینک این پکیج و دانلود کنید.2- پیکره بندی برای پیکره بندی Doctrine spatial extension در سیمفونی فقط کافیست فایل config/doctrine.yaml خود را ویرایش کنیم.انواع هندسی خود را وارد میکنیم، میبینیم type های دیگری هم وجود دارد، ما در این پست در مورد نوع polygon صحبت میکنیم.doctrine:
    dbal:
        types:
            geometry:   CrEOF\Spatial\DBAL\Types\GeometryType
            point:      CrEOF\Spatial\DBAL\Types\Geometry\PointType
            polygon:    CrEOF\Spatial\DBAL\Types\Geometry\PolygonType
            linestring: CrEOF\Spatial\DBAL\Types\Geometry\LineStringType3- در مرحله بعد کافیست نوع polygon رو به موجودیت خود اضافه کنیمnamespace App\Entity;
 use CrEOF\Spatial\PHP\Types\Geometry\Polygon;
use Doctrine\ORM\Mapping as ORM;

class PolygonEntity{
 /**
* @var int
* @Id
* @GeneratedValue(strategy=&amp;quotAUTO&amp;quot)
* @Column(type=&amp;quotinteger&amp;quot)
*/
protected $id;

/**    
 * @var Polygon     
*    
 * @Column(type=&amp;quotpolygon&amp;quot, nullable=true)     
*/
 protected $polygon;

public function getId()    
{ 
   return $this-&gt;id;    
} 
 /**     
* Get polygon.    
 *     
* @return Polygon    
 */ public function getPolygon()    
{ 
   return $this-&gt;polygon;    
}  
/**     
* Set polygon.    
 *     
* @param Polygon $polygon polygon to set    
 *     
* @return self    
 */ public function setPolygon(Polygon $polygon)    
{
    $this-&gt;polygon = $polygon;  
   return $this;    
}}
}4- بعد از اینکه مدل خود را ایجاد کردید migration خود را ایجاد میکنید و به دیتابیس ارسال میکنید5- یک نمونه از ریکوئست ای که به صورت رست ایجاد کردم و ایجا میفرستم که با هم ببینیم.{
    &amp;quotpolygon&amp;quot: {
        &amp;quotrings&amp;quot: [
            [
                [
                    51.337116612000045,
                    35.700401726000052
                ],
                [
                    51.337528042000031,
                    35.700363758000037
                ],
                [
                    51.337433070000031,
                    35.700090746000058
                ],
                [
                    51.337126481000041,
                    35.70009549100007
                ],
                [
                    51.337116612000045,
                    35.700401726000052
                ]
            ]
        ],
        &amp;quotsrid&amp;quot: 4326
    }
}این مختصاتی که وارد کردم مختصات ناحیه ای در میدان آزادی هست.در polygon نقطه شروع و پایان باید یکی باشد.همیشه مقدار srid برابر با 4326 باید باشد که به صورت جنرال استممنون که تا اینجا همراهم بودید و امیدوارم که مفید واقع شده باشد.با تشکر امیر سلخوری هستم توسعه دهنده.01000001011011010110100101110010001000000101001101100001011011000110101101101000011011110111001001101001</description>
                <category>amir salkhori</category>
                <author>amir salkhori</author>
                <pubDate>Tue, 13 Oct 2020 22:51:54 +0330</pubDate>
            </item>
                    <item>
                <title>اسکرام در چند دقیقه</title>
                <link>https://virgool.io/@amiryarke/%D8%A7%D8%B3%DA%A9%D8%B1%D8%A7%D9%85-%D8%AF%D8%B1-%DA%86%D9%86%D8%AF-%D8%AF%D9%82%DB%8C%D9%82%D9%87-wwcxjqkusdyl</link>
                <description>در این مقاله   قصد دارم در مورد scrum برای مدیریت چابک توسعه محصول و چرا scrum میتونه مفید باشه صحبت کنم مواردی که صحبت میکنم  Product backlog  Team work Sprint  Burndown chart  Scrum daily  در اسکرام کارها از دید کاربر نهایی دیده میشه (user story). به مجموعه ای از تمام user story ها backlog گفته میشه در بک لاگ درباره آرزوهای که برای محصول خود داریم فکر می کنیم وقتی بک لاگ ما آماده میشه نیازه تا برنامه ریزی کنیم که کدام یک از user story ها باید تحویل داده شوند را آغاز کنیم ما به افراد و نقش های در تیم خود نیاز داریم برای ساخت محصول خود 1-و product owner مسول اینه که user story های را که نیازمندی های مشتری را برطرف میکند را در بک لاگ قرار دهد و آنها را الویت بندی می کند. 2-و scrum master وظیفه حفظ و تسهیل فرایند اسکرام در تیم را بعهده دارد، جلسات را برگزار میکند و مانیتور میکنه که کارها تموم شده باشند و برنامه ریزی های تیم را تسهیل میکند شبیه مدیر پروژه هست ولی این شخص رو scrum master صدا میکنیم وDeveloper ,tester,customer دیگر نقش های اسکرام هستند و مدیران که نقش همایتی در پروژه را ایفا می کنند و Release planning برای release کردن محصول یک تیم به product backlog نیاز داره، ما user story ها را که می خوایم در release بعدی وجود داشته باشند رو شناسایی میکنیم و اون ها backlog رو تشکیل میدن، اینالویت بندی و تخمین میزان کار برای انجای user story را انجام می دهند. بعضی وقتهاuser storyهای بزرگ بهuser storyهای کوچک شکسته میشن که مجموعه این تخمینها مارو به یک زمان تقریبی برای زمان release ما می رسونه تکنیک های زیادی برای تخمین زدن کارها وجود داره، بعضی ها تخمین را بر اساس story point هستند که ارتباط براساس کارهای کوچک شناخته شده برقرار میشهیکی ازبهترین تخمینها، تخمین براساس ساعت انجام کار است(Estimate_in_Hours) بااین استانداردکاری که کمتراز یک روزبرای انجام آن زمان میبره در زمان های1 ساعت، 2 ساعت، 4 ساعت و 8 ساعت تخمین زده می شود. اگر زمان کار فرضا 3 ساعت در نظر گرفته شود در قالب زمان بزرگتر 4 ساعت در نظر میگیریمموارد بزرگتر با زمان های 2 روز، 5 روز و 10 روز تخمین زده میشوند. باز تخمین بین این زمان ها در زمان بزرگتر قرار خواهد گفت. اما واقعیتی که هست این موارد قبل از انجام کار باید به زمان های کوچکتر شکسته شوند.برگردیم سراغ Release backlog : با مشخص شدن user story ها تخمین و الویت بندی آن ها می توانیم برنامه ریزی انجام آن ها را در قالب چند sprint انجام بدیم. اسپرینت ها اهدافی در بازه های زمانی کوتاه هستند که به تیم اجازه میدهند تا پروژه را بهتر مدیریت کننداسپرینت ها معمولا در بازه زمانی از 2 روز تا 30 روز براساس چرخه release ها محصول برنامه ریزی میشوند. هر چند بازه زمانی تحویل محصول ما کوتاه تر باشد اسپرینت ها کوتاه تر میشوند. ما release backlog خود را به چندین sprint backlog تقسیم میکنیم.مهم ترین نکته ای که در مورد sprint backlog در نظر بگیریم هدف یک اسپرینت است که زیر مجموعه ای از موارد release backlog به موارد قابل تحویل است. در انتهای هر اسپرینت ما باید محصول تست شده با فیچرهای صد در صد انجام شده را باید داشته باشیم. اسپرینت های کوتاه نمای از محصول ما هستند.انجام دیر موقع اسپرینت بهترین نشانه تشخیص این است که پروژه براساس زمانبندی پیش بینی جلو نمیره و باید کاری انجام دهیم. برای همین ما باید فرآیند اسپرینت را نظارت کنیم با Burndown chart دلیل محبوبیت اسکرام هم Burndown chart می باشدمقدار باقی مانده کارها به صورت روز به روز در هر اسپرینت توسط Burndown chart نشان داده می شود. که به صورت یه گراف بالا و پایین شدن مقادیر کارهای باقی مانده در هر روز را میبینیم و به صورت عمومی روندش به سمت صفر میروددر این چارت تاریخچه اطلاعات پروژه وجود دارد و به راحتی می شود فهمید که پروژه در مسیر صحیح قرار دارد یانه. همچنین تیم میتواند به سرعت محاسه کند که شیب گراف میانگین فعالیت در هر روز چه مقدار بوده است.(Burndown Velocity) ما میتوانیم سرعت واقعی تیم و تاریخ تحویل پروژه را تحلیل کنیم.و daily Scrum یک راه موثر و آزادانه بین اعضای تیم می باشد. هدف اینه یک جلسه سریع سرپای باشد و اعضای تیم بتوانند لیست کارهای که از قبل انجام دادن و موانع و ریسک های احتمالی را بررسی کنند. و در آخر اسپرینت تموم میشود و بسیار ضروریه که جلسات sprint Retrospective برگزار بشهدر این جلسات تیم بر سر نقاط قوت و قابل بهبود بحث و برنامه ریزی می کند. الان دیگه میدونیم که اسکرام یک روش چابک و قابل انعطاف برای توسعه محصول هست که نیازمند توسعه و افزایش در تیم است. شروع کنیم یک تیم خوب، همکاری خوب و محصولی عالی داشته باشیمامیر  سلخوری هستم توسعه دهنده.01000001011011010110100101110010001000000101001101100001011011000110101101101000011011110111001001101001</description>
                <category>amir salkhori</category>
                <author>amir salkhori</author>
                <pubDate>Fri, 21 Aug 2020 18:49:14 +0430</pubDate>
            </item>
                    <item>
                <title>ساختار فایل ها و فولدرهای موجود در symfony</title>
                <link>https://virgool.io/@amiryarke/%D8%B3%D8%A7%D8%AE%D8%AA%D8%A7%D8%B1-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7-%D9%88-%D9%81%D9%88%D9%84%D8%AF%D8%B1%D9%87%D8%A7%DB%8C-%D9%85%D9%88%D8%AC%D9%88%D8%AF-%D8%AF%D8%B1-symfony-nr4odlnejqlk</link>
                <description>به نام خدادر این بخش می پردازیم به ساختار فولدرها و فایل های موجود در سیمفونیسیمفونی (به انگلیسی: Symfony) یک چارچوب نرم‌افزاری تحت وب متن‌باز است که برای ساختِ وب سایت های پویا به‌کار می‌رود. این چارچوب که به زبان php نوشته شده‌است، به کار توسعهٔ نرم‌افزار شتاب می بخشد. این شتاب‌بخشی توسط کتابخانه‌های این چارچوب انجام می‌شود که بسیاری از آن‌ها کارهای رایج را به‌سادگی انجام می‌دهند. این چارچوب بر اساس مدل معماری مدل-نما-کنترل‌گر (به انگلیسی: MVC) کار می‌کند.این چارچوب پیاده سازی‌های شما را بر اساس بسته‌های (به انگلیسی: bundle) ایجاد کرده پیش خواهد برد و شما نیز می‌توانید از هزاران بسته نوشته شده متن باز دیگران در پروژه خود استفاده کنید. در ساختار اصلی این چاچوب دایرکتوری های زیر را مشاهده می کنید :  Symfony ساختار اصلیbin:این دایرکتور قسمت باینری می باشد . خروجی های که به تنهای قابل استفاده هستند و به تنهای قابل اجرا می باشند. مثل فایل console یا برای تست نویسی phpunit از این دایرکتوری استفاده می شود.config:دغدغه های مربوط به configuration پروژه در این قسمت قرار دارد.تمام تنظیماتی که مربوط به پروژه می باشد. تنظیمات مربوط به دیتابیس ، تنظمیات مربوط به فریمورک.public:فایل های عمومی که قرار است در دسترس همه باشند در این قسمت دایرکتوری قرار دارندمثل index.php ، مثل فایل های مربوط به فرانت سایت css ها ، js ها ، Image ها و...src:منظق پروژه در این دایرکتور قرار داردبرنامه های نوشته شده توسط خودمان استtemplate:این دایرکتوری مربوط به بخش نگهداری ساختار twig می باشد که چهارچوب ظاهر سایت در این دایرکتوری قرار دارد.var:این دایرکتوری مربوط به قسمت گزارش گیری سیستم می باشد.vendor:نیازمندی های پروژه در این دایرکتوری قرار دارد.سورس کد پروژه در این قسمت می باشد.env:در این فایل می توانیم برای سیمفونی environment تعریف کنیممی توانیم environment های مختلف تعریف کنیممی توانیم تغییر وضعیت ایجاد کنیم برای اپلیکیشن خودمانمثلا وقتی پروژه خود را در لوکال بالا میاریم پروژه ما در حالت dev می باشد و وقتی پروژه خود را درون سرور بالا می آوریم و میخوایم تحویل مشتری دهیم وضعیت آن را به حالت production تغییر می دهیم.نوع دیتابیس خود را هم می توانیم مشخص کنیم که از نوع mysql باشد یا PostgreSQL .اطلاعات مربوط به دیتابیس خود را در این قسمت قرار می دهیم.composer.jsonاین فایل پکیج منیجر php ما می باشد .پکیج های که نصب می کنیم در این فایل قرار می گیرد.composer.lockجدیدترین ورژن های که برای پکیج ها می آید در این قسمت قرار می گیرد.ورژن پکیج ها را کنترل می کندcomposer.pharاین فایل repository manager برای یکسری dependency ها می باشدsymfony.lockاین فایل مربوط به repository manager سیمفونی می باشد.ممنون تا اینجا همراهم بودید . در مقالات بعدی به شروع به ساخت قسمت های مختلف یک وب سایت به کمک سیمفونی میشویم.اگر سوال و یا پیشنهادی دارید میتوانید به ایدی من در تلگرام به نام amirsalkhori  و در اینستا amir_salkhori مراجعه نماید.امیر یارکه سلخوری هستم توسعه دهنده.01100001011011010110100101110010001000000111001101100001011011000110101101101000011011110111001001101001</description>
                <category>amir salkhori</category>
                <author>amir salkhori</author>
                <pubDate>Thu, 19 Mar 2020 18:12:03 +0330</pubDate>
            </item>
                    <item>
                <title>مقایسه بین فریم ورک سیمفونی و لاراول</title>
                <link>https://virgool.io/laravel-community/%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87-%D8%A8%DB%8C%D9%86-%D9%81%D8%B1%DB%8C%D9%85-%D9%88%D8%B1%DA%A9-%D8%B3%DB%8C%D9%85%D9%81%D9%88%D9%86%DB%8C-%D9%88-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-fjptxl0aewvd</link>
                <description>فریم ورک یا framework به معنی چارچوب می باشد. فریم ورک برنامه نویسی به مجموعه ای از کتابخانه ها، استاندارد ها و قوانین کدنویسی است که در بستر یک چارچوب نرم افزاری در اختیار برنامه نویسان قرار می گیرد. برای زبان های برنامه نویسی، انواع مختلفی فریم ورک توسعه داده شده است. فریم ورک های برنامه نویسی برای هدفی خاص ایجاد شده اند، برای مثال می توان به فریم ورک های وب ، فریم ورک های توسعه اپلیکیشن موبایل و... اشاره کرد. بنابراین فریم ورک های برنامه نویسی، به برنامه نویسان کمک می کنند کد های کمتری بنویسند و سریعتر به نتیجه برسند.چرا باید از فریم ورک استفاده کرد؟در فرآیند برنامه نویسی بخش زیادی از کدهایی که برنامه نویس می نویسد، تکراری خواهند بود. زیرا اپلیکیشن ها معمولا در بسیاری از ویژگی ها و بخش ها مشترک هستند. تکرار کدها برای‌ برنامه نویس در دراز مدت می تواند بسیار خسته کننده باشد. بنابراین فریم ورک ها برای حل این مسئله بستری برای نویسان مهیا کرده اند تا بسیاری از ویژگی های مشترک در اپلیکیشن ها را به صورت پیش فرض در اختیار برنامه نویس قرار دهند.زمانی که برنامه نویسان از فریم ورک ها استفاده می کنند، باید حتما به قوانین و استاندارد های آن پایبند باشند، زیرا این امر باعث می شود که برنامه نویس کدهایی خوانا، استاندارد و قابل اعتماد بنویسد. بنابراین فریم ورک ها توسعه و مقیاس پذیری پروژه های بزرگ را آسان تر می کنند. استفاده از فریم ورک ها در ساخت وب اپلیکیشن ها از اهمیت زیادی برخوردار است، زیرا در این حوزه ویژگی هایی مانند امنیت بالا، بروزرسانی مرتب، پشتیبانی و... بسیار حیاتی می باشند.مزایای فریم ورک های برنامه نویسیقوانین در فریم ورک ها امنیت را افزایش خواهند داد و به روند توسعه پروژه سرعت می بخشند. فریم ورک ها مزیت های زیادی در اختیار برنامه نویسان قرار می دهند که به صورت کلی می توان آن ها را به صورت پایین در نظر گرفت:افزایش سرعت کدنویسیکاهش زمان کدنویسیافزایش خوانایی کدهارعایت استانداردهای برنامه نویسیافزایش پتانسیل انجام کارهای تیمیپشتیبانی و بروزرسانی منظمفریم ورک لاراول (Laravel Framework)زمانی که در مورد فریم ورک های PHP صحبت می شود، همیشه نام لاراول به گوش می رسد. از لاراول می توان به عنوان محبوب ترین فریم ورک PHP یاد کرد. این فریم ورک در سال 2011 منتشر شد و با استقبال توسعه دهندگان وب رو به رو شد. برای مدیریت برنامه های پیچیده تحت وب فریم ورک لاراول به اولین گزینه توسعه دهندگان تبدیل شده است چرا که این فریم ورک در بین سایر فریم ورک های PHP از امنیت و سرعت توسعه بیشتری برخوردار است.لاراول فریم ورکی مبتنی بر معماری MVC است که به صورت رایگان و متن باز ارائه شده است. این فریم‌ ورک امکانات هوشمندی در اختیار برنامه نویسان قرار می دهد و برنامه‌ نویسی را برای آن ها لذت بخش تر می‌کند. آموزش لاراول برای برنامه نویسانی که با زبان PHP آشنایی دارند، بسیار آسان خواهد بود. برنامه نویسانی که علاقه به آموزش رایگان لاراول دارند می توانند به سایت لاراول مراجعه کنند و هر آنچه برای به کارگیری این فریم ورک نیاز دارند در مستندات آن پیدا خواهند کرد.فریم ورک سیمفونی (Symfony Framework)این فریم ورک در سال 2005 در اختیار توسعه دهندگان قرار گرفت. سیمفونی سابقه بیشتری نسبت به سایر فریم ورک های PHP دارد و بسیار قابل اطمینان و منطعف است. سیمفونی به عنوان یکی از سریع‌ ترین فریم‌ ورک‌ های PHP شناخته می شود و ساخت وب اپلیکیشن را برای برنامه نویسان بسیار ساده تر می کند. جالب است بدانید که این فریم ورک پایه و اساس فریم ورک لاراول را تشکیل می دهد.بسیاری از برنامه نویسان PHP بر سر دو راهی لاراول یا سیمفونی قرار می گیرند. انتخاب یکی از آن ها به عنوان فریم ورک بهتر کاری سخت خواهد بود. هر دو فریم‌ ورک‌ بسیار کارآمد هستند و مزیت های مشترک و خاصی دارند. اگر فریم ورک لاراول را خانه ای از پیش ساخته شده در نظر بگیریم که فقط مسئولیت چیدمان وسایل آن بر عهده شما باشد، فریم ورک سیمفونی مانند مصالح ساختمانی است که در اختیار شما قرار می گیرند و امکان ساخت یک ساختمان کامل مطابق با سلیقه و نیازتان را در برای شما فراهم می سازد. بنابراین برای برنامه نویسان و توسعه دهندگانی که علاقه مند به ایجاد ساختارهای برنامه نویسی خاص خود هستند، طراحی سایت با سیمفونی یک انتخاب مناسب است.مقایسه محبوبیت فریم ورک سیمفونی و لاراول در گیت هابسیمفونی و لاراول template engine  متفاوتی هم دارند. برای سیمفونی twig و برای لاراول blade است. عملکرد و مقیاس پذیریسیمفونی به طور پیش فرض در حال ذخیره منبع کد است. لاراول از روی سیمفونی ساخته شده است نکته جالب اینجاست که لاراول وقتی در حال ذخیره کد منبع هست از سیمفونی سریعتر عمل میکند.میانگین بارگیری وب سایتها در Laravel حدود 60 میلی ثانیه است ، در حالی که برای Symfony حدود 250 است.صادقانه بگویم ، لاراول در سال های اخیر قدرت زیادی کسب کرده. بهتر است برای پروژه های وب در مقیاس بزرگ که نیاز به تحویل سریعتر با منابع کمتری دارید از لاراول استفاده کنید. در عین حال ، Symfony برای برنامه های وب پیچیده در سطح سازمانی بهتر است ، و همچنین به توسعه دهندگان مهارت های بالاتری می دهد.به طور خلاصه ، مزایای اصلی چارچوب وب Symfony عبارتند از:گزینه های متعدد برای توسعهسیمفونی بر پایه Domain model application می باشدسریع تر از بسیاری از چارچوب های دیگر PHPسازگاری و عملکرد بهینه (درخواست / پاسخ HTTP محور)اجزای قابل استفاده مجدد که باعث کاهش زمان و هزینه می شوندو مزایای اصلی چارچوب وب Laravel عبارتند از:مکانیسم سازنده پیشرفته پرس و جو.توسعه دهنده سریع(Rapid developer)مهاجرت داده ها بدون درد و مدیریت کلیتأسیسات بارگیری خودکار (بدون نیاز به تعمیر و نگهداری دستی)احراز هویت ساده ترالبته بنده به شخصه با Symfony کار می‌کنم و از آن بسیار راضی هستم. Symfony با جامعه‌ای قدرتمند و بزرگ خود توانسته جای پای خود را سفت کند.ممنون تا اینجا همراهم بودید . در مقالات بعدی به شروع به ساخت قسمت های مختلف یک وب سایت به کمک سیمفونی میشویم.اگر سوال و یا پیشنهادی دارید میتوانید به ایدی من در تلگرام به نام  @amirsalkhori مراجعه نماید.امیر یارکه سلخوری هستم توسعه دهنده. 01100001011011010110100101110010001000000111001101100001011011000110101101101000011011110111001001101001</description>
                <category>amir salkhori</category>
                <author>amir salkhori</author>
                <pubDate>Sat, 08 Feb 2020 18:13:55 +0330</pubDate>
            </item>
                    <item>
                <title>بخش اول راه اندازی سایت به وسیله سیمفونی</title>
                <link>https://virgool.io/@amiryarke/%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A8%D9%87-%D9%88%D8%B3%DB%8C%D9%84%D9%87-%D8%B3%DB%8C%D9%85%D9%81%D9%88%D9%86%DB%8C-goergbzoo13k</link>
                <description>به نام خدادیدم مطالب آموزشی در مورد سیمفونی خیلی کمه گفتم بتونم چیزای و که تجربه کردم و در اختیار دوستانی که می خوان شروع کار با سیمفونی کنن بزارمسریع میرم سر اصل مطلببرای کار به سیمفونی ما نیاز به چندتا ابزار داریم:1- نصب xampp2- یه IDE مناسب که پیشنهادم PhpStorm هست3- اگه میخواید api کار کنید postman هم داشته باشید خوبه4- نصب composerبریم سیمفونی و نصب کنیمبعد از نصب xampp به محل نصب آن میرویم وارد فولدر htdocs میشویم و در این فولدر پروژه خودمون و ایجاد می کنیمبرای نصب سیمفونی کافیه command زیر رو وارد کنیدcomposer create-project symfony/website-skeleton project_nameبعد اینکه سیمفونی و نصب کردید یه سری نیازمندی ها داره که اونارو هم باید نصب کنیمcomposer require --dev symfony/web-server-bundleبرای اجرای سیمفونی کافیه در command خود دستور زیر را وارد کنیدphp -S 127.0.0.1:8000 -t publicحالا مرورگر خودمون و باز کنیم و ای پی مورد نظرمون و وارد کنیم (127.0.0.1:8000) صفحه سیمفونی ما ظاهر میشهتبریک میگم با موفقیت تا اینجای کار سیمفونی و نصب کردیم و اجراش هم کردیمتو بخش بعدی سعی میکنیم بپردازیم به ساختار فایل ها و فولدرهای موجود در symfony ممنون که همراهیم کردیامیر یارکه سلخوری هستم توسعه دهنده.</description>
                <category>amir salkhori</category>
                <author>amir salkhori</author>
                <pubDate>Sat, 01 Feb 2020 23:07:30 +0330</pubDate>
            </item>
            </channel>
</rss>