<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Moshtaghi.ir &#187; ابزار طراحی وب</title>
	<atom:link href="http://weblog.moshtaghi.ir/category/%d8%a7%d8%a8%d8%b2%d8%a7%d8%b1-%d8%b7%d8%b1%d8%a7%d8%ad%db%8c-%d9%88%d8%a8/feed/" rel="self" type="application/rss+xml" />
	<link>http://weblog.moshtaghi.ir</link>
	<description>وبلاگ شخصی مهدی مشتاقی</description>
	<lastBuildDate>Mon, 01 Mar 2010 10:48:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>نصب بسته lamp روی openSUSE با استفاده از XAMPP for Linux</title>
		<link>http://weblog.moshtaghi.ir/2009/10/installing-lamp-on-opensuse-using-xampp-for-linux/</link>
		<comments>http://weblog.moshtaghi.ir/2009/10/installing-lamp-on-opensuse-using-xampp-for-linux/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 21:48:06 +0000</pubDate>
		<dc:creator>مهدی</dc:creator>
				<category><![CDATA[ابزار طراحی وب]]></category>
		<category><![CDATA[لینوکس]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[lampp]]></category>
		<category><![CDATA[my sql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[xampp]]></category>

		<guid isPermaLink="false">http://weblog.moshtaghi.ir/?p=464</guid>
		<description><![CDATA[برای داشتن یک محیط توسعه php یکی از بهترین و راحت‌ترین راه‌ها استفاده از بسته XAMPP است. این بسته که یک نسخه آماده استفاده از بسته‌های Apache, PHP, My SQL  و perl می‌باشد که بسیار راحت قابل نصب و استفاده است. با سادگی دانلود، کپی و بازکردن فایل فشرده!!!
برای نصب این بسته مراحل زیر ]]></description>
			<content:encoded><![CDATA[<blockquote><p>برای داشتن یک محیط توسعه php یکی از بهترین و راحت‌ترین راه‌ها استفاده از بسته <a href="http://www.apachefriends.org/en/xampp-linux.html" target="_blank">XAMPP</a> است. این بسته که یک نسخه آماده استفاده از بسته‌های Apache, PHP, My SQL  و perl می‌باشد که بسیار راحت قابل نصب و استفاده است. با سادگی دانلود، کپی و بازکردن فایل فشرده!!!</p></blockquote>
<h3>برای نصب این بسته مراحل زیر را دنبال می‌کنیم:</h3>
<p>۱- دریافت از سایت رسمی پروژه با حجم تقریبی 63MB که شامل تمامی بسته‌های زیر می‌باشد.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Apache 2.2.12, MySQL 5.1.37, PHP 5.3.0 <span style="color: #000000; font-weight: bold;">&amp;</span>amp; PEAR + SQLite 2.8.17<span style="color: #000000; font-weight: bold;">/</span>3.6.16 + multibyte <span style="color: #7a0874; font-weight: bold;">&#40;</span>mbstring<span style="color: #7a0874; font-weight: bold;">&#41;</span> support, Perl 5.10.0, ProFTPD 1.3.2a,
 phpMyAdmin 3.2.0.1, OpenSSL 0.9.8k, GD 2.0.1, Freetype2 2.1.7, libjpeg 6b, libpng 1.2.12, gdbm 1.8.0, zlib 1.2.3, expat <span style="color: #000000;">1.2</span>, Sablotron <span style="color: #000000;">1.0</span>, libxml 2.7.2,
 Ming 0.4.2, Webalizer <span style="color: #000000;">2.21</span>-02, pdf class 009e, ncurses <span style="color: #000000;">5.3</span>, mod_perl 2.0.4, FreeTDS <span style="color: #000000;">0.63</span>, <span style="color: #c20cb9; font-weight: bold;">gettext</span> <span style="color: #000000;">0.17</span>, IMAP C-Client 2007e, OpenLDAP <span style="color: #7a0874; font-weight: bold;">&#40;</span>client<span style="color: #7a0874; font-weight: bold;">&#41;</span> 2.3.11,
 mcrypt 2.5.7, mhash 0.8.18, eAccelerator 0.9.5.3, cURL 7.19.3, libxslt 1.1.8, phpSQLiteAdmin <span style="color: #000000;">0.2</span>, libapreq <span style="color: #000000;">2.08</span>, FPDF <span style="color: #000000;">1.6</span>, XAMPP Control Panel <span style="color: #000000;">0.6</span>,
 bzip 1.0.5, PBXT 1.0.08-rc, PBMS 0.5.08-alpha, ICU4C Library 4.2.1</pre></div></div>

<blockquote><p>نکته: نسخه‌های بالا مربوط به نسخه XAMPP for Linux 1.7.2  در تاریخ  2009/8/10 می‌باشد.</p></blockquote>
<p>۲- پس از اتمام دانلود وارد ترمینال شده و با دسترسی کاربر ریشه (su) فایل مربوطه را در پوشه /opt از حالت فشرده خارج کنید.<span id="more-464"></span></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">tar</span> xvfz xampp-linux-1.7.2.tar.gz <span style="color: #660033;">-C</span> <span style="color: #000000; font-weight: bold;">/</span>opt</pre></div></div>

<blockquote><p>نکته: حتماْ با استفاده از همین دستور فایل رو از حالت فشرده خارج کنید!</p></blockquote>
<p>۳- تموم شد، متاسفم که منتظر مرحله بعد بودی (به یاد اینستالر  wordpress فارسی). حالا XAMPP  در پوشه /opt/lampp نصب شده و با اجرای دستور زیر اجرا می‌شه.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp<span style="color: #000000; font-weight: bold;">/</span>lampp start</pre></div></div>

<p>مرورگر خود را باز کنید و برای آزمایش به آدرس http://localhost مراجعه کنید.</p>
<h3>پارامتر‌های مورد نیاز دیگر</h3>
<p>در این جدول لیستی از پارامتر‌هایی رو که در اجرا و استفاده از XAMPP لازم می‌شوند را مشاهده می‌کنید:</p>
<table class="leftt" border="0" cellspacing="0">
<tbody>
<tr valign="top">
<td colspan="4">START AND STOP PARAMETERS</td>
</tr>
<tr valign="top">
<td>Parameter</td>
<td>Description</td>
</tr>
<tr valign="top">
<td><tt>start</tt></td>
<td>Starts XAMPP.</td>
</tr>
<tr valign="top">
<td><tt>stop</tt></td>
<td>Stops XAMPP.</td>
</tr>
<tr valign="top">
<td><tt>restart</tt></td>
<td>Stops and starts XAMPP.</td>
</tr>
<tr valign="top">
<td><tt>startapache</tt></td>
<td>Starts only the Apache.</td>
</tr>
<tr valign="top">
<td><tt>startssl</tt></td>
<td>Starts the Apache SSL support. This command activates the SSL support permanently, e.g. if you restarts XAMPP in the future SSL will stay activated.</td>
</tr>
<tr valign="top">
<td><tt>startmysql</tt></td>
<td>Starts only the MySQL database.</td>
</tr>
<tr valign="top">
<td><tt>startftp</tt></td>
<td>Starts the ProFTPD server. Via FTP you can upload files for your web server (user &#8220;nobody&#8221;, password &#8220;lampp&#8221;). This command activates the ProFTPD permanently, e.g. if you restarts XAMPP in the future FTP will stay activated.</td>
</tr>
<tr valign="top">
<td><tt>stopapache</tt></td>
<td>Stops the Apache.</td>
</tr>
<tr valign="top">
<td><tt>stopssl</tt></td>
<td>Stops the Apache SSL support. This command deactivates the SSL support permanently, e.g. if you restarts XAMPP in the future SSL will stay deactivated.</td>
</tr>
<tr valign="top">
<td><tt>stopmysql</tt></td>
<td>Stops the MySQL database.</td>
</tr>
<tr valign="top">
<td><tt>stopftp</tt></td>
<td>Stops the ProFTPD server. This command deactivates the ProFTPD permanently, e.g. if you restarts XAMPP in the future FTP will stay deactivated.</td>
</tr>
<tr valign="top">
<td><tt>security</tt></td>
<td>Starts a small security check programm.</td>
</tr>
</tbody>
</table>
<p>این پارامتر‌ها را باید به شکل زیر استفاده کنید:<br />
/opt/lampp/lampp restart</p>
<h3>آدرس‌ها و مسیر‌های مورد نیاز</h3>
<p>در این جدول آدرس‌های مهمی همچون فایل‌های پیکره بندی و &#8230; را مشاهده می‌کنید:</p>
<table class="leftt" border="0" cellspacing="0">
<tbody>
<tr valign="top">
<td colspan="4">IMPORTANT FILES AND DIRECTORIES</td>
</tr>
<tr valign="top">
<td>File/Directory</td>
<td>Purpose</td>
</tr>
<tr valign="top">
<td><tt>/opt/lampp/bin/</tt></td>
<td>The XAMPP commands home. /opt/lampp/bin/mysql calls for example the MySQL monitor.</td>
</tr>
<tr valign="top">
<td><tt>/opt/lampp/htdocs/</tt></td>
<td>The Apache DocumentRoot directory.</td>
</tr>
<tr valign="top">
<td><tt>/opt/lampp/etc/httpd.conf</tt></td>
<td>The Apache configuration file.</td>
</tr>
<tr valign="top">
<td><tt>/opt/lampp/etc/my.cnf</tt></td>
<td>The MySQL configuration file.</td>
</tr>
<tr valign="top">
<td><tt>/opt/lampp/etc/php.ini</tt></td>
<td>The PHP configuration file.</td>
</tr>
<tr valign="top">
<td><tt>/opt/lampp/etc/proftpd.conf</tt></td>
<td>The ProFTPD configuration file. (since 0.9.5)</td>
</tr>
<tr valign="top">
<td><tt>/opt/lampp/phpmyadmin/config.inc.php</tt></td>
<td>The phpMyAdmin configuration file.</td>
</tr>
</tbody>
</table>
<h3>حذف XAMPP</h3>
<p>برای اینکار کافیست تا پوشه مربوطه را حذف کنید.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-rf</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp</pre></div></div>

<h3>کمی شخصی سازی و اعمال سلیقه</h3>
<p>احتمالاْ تا حالا باید متوجه شده باشید که با این شرایط، ۲تا مشکل برامون پیش خواهد آمد.</p>
<ul>
<li> در دسترس نبودن DocumentRoot برای کاربران عادی</li>
<li> AutoStart نبودن اجرای XAMPP به هنگام بالا آمدن سیستم</li>
</ul>
<p>برای حل مشکل اول باید DocumentRoot را به پوشه‌ای در پوشه home خود انتقال دهیم. برای انجام این کار مراحل زیر را دنبال کنید.<br />
۱- ابتدا پوشه‌ای به نام public_html در پوشه home خود بسازید:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>mehdi<span style="color: #000000; font-weight: bold;">/</span>public_html</pre></div></div>

<p>۲- فایل httpd.conf را با دستور زیر در یک ادیتور متن (در اینجا kwrite) باز کرده و هر جا (۲ قسمت) که عبارت &#8220;/opt/lampp/htdocs&#8221; را مشاهده کردید با عبارت &#8220;/home/mehdi/public_html&#8221; تغییر دهید.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> kwrite <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>httpd.conf</pre></div></div>

<p>و یا در صورت بروز خطا از دستور</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">kdesu kwrite <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>httpd.conf</pre></div></div>

<p>۳- تمامی محتویات پوشه /opt/lamp/htdocs را به پوشه /home/mehdi/public_html کپی کنید.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #660033;">-R</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp<span style="color: #000000; font-weight: bold;">/</span>htdocs<span style="color: #000000; font-weight: bold;">/*</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>mehdi<span style="color: #000000; font-weight: bold;">/</span>public_html<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>مشکل اول حل شد، تنها کافیست برای اعمال تغییرات XAMPP را دوباره راه اندازی کنید.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lammp<span style="color: #000000; font-weight: bold;">/</span>lammp restart</pre></div></div>

<p>همونطور که می‌دونید بطور پیشفرض تمامی برنامه‌هایی که در پوشه /etc/init.d قرار دارند به هنگام بالا امدن سیستم اجرا می‌شوند، پس برای حل مشکل دوم باید یک لینک از  /opt/lampp/lampp را در این پوشه قرار دهیم. برای اینکار از دستور زیر استفاده می‌کنیم:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>opt<span style="color: #000000; font-weight: bold;">/</span>lampp<span style="color: #000000; font-weight: bold;">/</span>lampp <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>lampp</pre></div></div>

<p>حالا YAST را باز کرده، به قسمت system/system services (Runlevel) رفته و در ستون سرویس بروی lampp کلیک کرده و خاصیت Enabled آن را به yes تغییر می‌دهیم. با اینکار در  Runlevel3  و Runlevel5 (یعنی محیط گرافیکی و متنی، اگر اشتباه نکنم) lampp بطور خودکار به هنگام بالا آمدن سیستم اجرا و به هنگام خاموش شدن آن متوقف می شود.</p>
<p>پ‌ن: این مطلب رو با توجه به <a href="http://www.apachefriends.org/en/faq-xampp-linux.html" target="_blank">داکیومنت‌های رسمی</a> XAMPP for Linux  تهیه کردم و به کاربران محترم سایت <a title="وبسایت کاربران فرسی زیان openSUSE" href="http://opensuse.ir" target="_blank">openSUSE.ir</a> تقدیم می‌کنم.</p>
<img src="http://www.moshtaghi.ir/weblog/?ak_action=api_record_view&id=464&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://weblog.moshtaghi.ir/2009/10/installing-lamp-on-opensuse-using-xampp-for-linux/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>مودل فارسی</title>
		<link>http://weblog.moshtaghi.ir/2009/08/persian-moodle/</link>
		<comments>http://weblog.moshtaghi.ir/2009/08/persian-moodle/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 21:40:35 +0000</pubDate>
		<dc:creator>مهدی</dc:creator>
				<category><![CDATA[ابزار طراحی وب]]></category>
		<category><![CDATA[elearning]]></category>
		<category><![CDATA[moodle]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[persian]]></category>
		<category><![CDATA[solar calendar]]></category>

		<guid isPermaLink="false">http://www.moshtaghi.ir/weblog/?p=446</guid>
		<description><![CDATA[پیش نوشته:
مودل (Moodle) برترین نرم‌افزار موجود برای آموزش از راه دور (آموزش آنلاین) است که در بیش از ۵۰٬۰۰۰ دانشگاه و مؤسسهٔ آموزشی در سراسر جهان مورد استفاده قرار گرفته.

چندی پیش (یعنی خیلی وقت پیش) به دنبال درج تقویم شمسی در مودل بودم که به کد ناقصی (بعضی از فایل‌ها جا افتاده بودند) از آقای ]]></description>
			<content:encoded><![CDATA[<p>پیش نوشته:</p>
<blockquote><p>مودل (Moodle) برترین نرم‌افزار موجود برای آموزش از راه دور (آموزش آنلاین) است که در بیش از ۵۰٬۰۰۰ دانشگاه و مؤسسهٔ آموزشی در سراسر جهان مورد استفاده قرار گرفته.</p>
</blockquote>
<p>چندی پیش (<a href="http://www.mambolearn.com/forum/index.php?topic=16294.0" target="_blank">یعنی خیلی وقت پیش</a>) به دنبال درج تقویم شمسی در مودل بودم که به کد ناقصی (بعضی از فایل‌ها جا افتاده بودند) از آقای حسین زلفی( <a href="http://sourceforge.net/projects/moodlecalendar/" target="_blank">ایشان کد رو share کرده بودند</a>)، اما به تازگی با فعالیت‌های خوبی در<a href="http://moodle.org/forums/" target="_blank">انجمن فارسی مودل</a> توسط برخی از دوستان به خصوص <a href="http://rezaie.info/" target="_blank">آقای شمیم رضایی</a> مواجه شدم. ایشان تقویمی ارایه کرده‌اند که معماری تقویم به نحوی است که  نه تنها تقویم شمسی، بلکه تقویم‌های دیگر هم به راحتی قابل اضافه شدن هست. <a href="http://tracker.moodle.org/browse/MDL-18375" target="_blank">اینجا می‌توانید مشاهده کنید</a></p>
<p><span id="more-446"></span></p>
<p>اگر به توسعه فعالیت‌های متن باز به ویژه در زبان فارسی و البته مودل علاقه‌مند هستید برای  اضافه شدن این قابلیت در بستهٔ استاندارد مودل، خواهش می‌کنم به <a href="http://tracker.moodle.org/browse/MDL-18375" target="_blank">نشانی بالا</a> بروید و به این قابلیت رأی (vote) بدهید. برای اینکه بتونید این کار رو بکنید، باید در سیستم tracker مودل عضو شده باشید.</p>
<p>همانطور که می‌دانید در حال حاضر اشخاص و شرکت‌هایی هستند که این کد یا کدهای مشابه را بر روی CD کپی کرده و در ازای دریافت ۲۵۰ هزار تومان ، CD مذبور را به رایگان! با پیک موتوری برای دیگران می‌فرستند، و یا برای نصب مودل با تقویم فارسی مطالبه ۲ میلیون تومان را می‌کنند. این افراد  وجود این قابلیت و همچنین قراردادن ترجمه زبان شیرین فارسی در خود مودل را تهدیدی برای آن آب باریکهٔ حلال‌تر از شیر مادر!!! خود می‌بینند که ترجیح می‌دهند این ویژ‌گی‌ها به صورت پیش‌فرض در مودل وجود نداشته باشد.</p>
<p>درخواست اضافه شدن ویژگی‌های جدید معمولاً بر اساس تعداد افرادی که نسبت به آن ویژگی‌ها ابراز علاقه می‌کنند مورد بررسی قرار می‌گیرد.</p>
<p><a href="http://tracker.moodle.org/browse/MDL?report=com.atlassian.jira.plugin.system.project%3Apopularissues-panel" target="_blank">در این آدرس زیر می‌تواننید قابلیت‌های محبوب را به ترتیب ببینید</a></p>
<p>در ستون سمت چپ تعداد رأی های هر کدام را می‌توانید ببینید. حالا خودتان این عددها را با ۱۴ رأیی که تاریخ شمسی تا الان آورده مقایسه کنید.</p>
<p>پ‌ن:خواهش می‌کنم این مطلب رو به گوش سایرین هم برسونید، با توئیت، فرفر و یا هر چیزی که صلاح می‌دانید.</p>
<p>بروز رسانی:تو این ۲ روزی که این پست رو دادم، رتبه تقویم شمسی از ۱۴ به ۲۳ رسید. ممنونم از همه که کمک کردند.</p>
<img src="http://www.moshtaghi.ir/weblog/?ak_action=api_record_view&id=446&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://weblog.moshtaghi.ir/2009/08/persian-moodle/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>انتخاب یک IDE مناسب php و سازگاری آن با symfony (قسمت اول)</title>
		<link>http://weblog.moshtaghi.ir/2009/06/best-php-ide-and-compatible-with-symfony/</link>
		<comments>http://weblog.moshtaghi.ir/2009/06/best-php-ide-and-compatible-with-symfony/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 11:57:02 +0000</pubDate>
		<dc:creator>مهدی</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[ابزار طراحی وب]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.moshtaghi.ir/weblog/?p=389</guid>
		<description><![CDATA[اگر به پست‌های قبلی که راجع به توسعه وب توسط php و البته فریم‌ورک بسیار قدرتمند symfony بود علاقه‌ای داشته باشید و آنها رو دنبال کنید، صد در صد برای ویرایش کد‌ها از یک ادیتور همچون gedit، kedit و یا شاید notepad استفاده کرده باشید. و در اینصورت متوجه شدید که دیگر نمی‌توان کار با ]]></description>
			<content:encoded><![CDATA[<p>اگر به پست‌های قبلی که راجع به توسعه وب توسط <a href="http://php.net" target="_blank">php</a> و البته فریم‌ورک بسیار قدرتمند <a href="http://symfony-project.org/" target="_blank">symfony</a> بود علاقه‌ای داشته باشید و آنها رو دنبال کنید، صد در صد برای ویرایش کد‌ها از یک ادیتور همچون <a href="http://projects.gnome.org/gedit/" target="_blank">gedit</a>، kedit و یا شاید notepad استفاده کرده باشید. و در اینصورت متوجه شدید که دیگر نمی‌توان کار با سیمفونی رو روی این قبیل ویرایشگرها ادامه داد.<br />
اینجاست که واجب می‌شود تا برای ادامه کار از یک <a title="Integrated development environment" href="http://en.wikipedia.org/wiki/Integrated_development_environment" target="_blank">IDE</a> خوب استفاده کنید. البته انتخاب IDE مناسب کار راحتی نیست و البته در عین حال راحته!!! یعنی دامنه انتخاب زیاده و شما باید برای انتخاب بهترین IDE، این دامنه رو کوچک‌تر کنید.<br />
برای کوچک کردن این دامنه باید توقع خود را از IDE بالا ببرید. در ادامه مطلب به بررسی این توقعات می‌پردازیم.<br />
<img class="aligncenter size-full wp-image-527" src="http://moshtaghi.ir/weblog/wp-content/uploads/2009/06/ides_best.png" alt="ides_best" width="577" height="299" /><br />
<span id="more-389"></span></p>
<h3>رنگ‌بندی کدها &#8211; Syntax highlighting</h3>
<p>رنگ‌بندی درست کد‌ها خوانایی آن را تا حد بسیاری بالا می‌برد. البته این ویژگی روی تمامی IDEها و حتی editor‌ها وجود داره. (جز Notepad ویندوز که بدرد یادداشت نوشتن هم نمی‌خوره!!!)</p>
<h3>اتمام خودکار کد &#8211; Code completion</h3>
<p>این ویژگی به سرعت کد‌نویسی خیلی کمک می‌کنه، همونطور که خیلی‌ها می‌دونند مثلاْ  برای نوشتن قطعه کد مربوط به مقصد یک لینک تنها حرف h را تایپ می‌کنید و IDE مقادیر href=&#8221;" و hreflang=&#8221;" رو به شما پیشنهاد می‌کنه.<br />
البته این ویژگی روی کد‌های php هم به همین صورتی که در تصویر زیر مشاهد می‌کنید اعمال می‌شود.<br />
<img class="aligncenter size-full wp-image-534" title="code_completion" src="http://moshtaghi.ir/weblog/wp-content/uploads/2009/06/code_completion.png" alt="code_completion" width="353" height="166" /><br />
پس تا اینجا تمام ادیتور‌ها از دامنه بزرگی که مورد بحث بود حذف شدن. (قابل توجه افرادی که گیر دادن به gedit و Kedit و emEditor و Notepad++ و همین قسم ویرایشگر‌ها)</p>
<h3>ناوبری &#8211; Navigation</h3>
<p>خیلی اوقات پیش می‌آید که شما داخل کد‌ها گم می‌شوید (مخصوصاْ به هنگام توسعه برنامه‌های نوشته شده در گذشته و یا کار‌های گروهی) و نیاز دارید تا برنامه شما رو به محل مورد نظر هدایت کنه. برای اینکار می‌توانید از امکان search یا Find که توی هر ویرایشگری پیدا می‌شه استفاده کنید. اما اگر پروژه کمی بزرگ باشد، دچار مشکل می‌شوید و آن زمان است که به امکانات بیشتری برای جستجو و ناوبری احتیاج پیدا می‌کنید. امکاناتی از قبیل Goto که می‌تونه شما رو به سطر، متد و یا کلاس خاصی هدایت کند (بر حسب کلمه کلیدی و یا تعریف از قبل). و یا پنلی که فایل شما را بر حسب کلاس‌ها و توابع موجود در آن بخش بندی و لیست می‌کند و &#8230;<br />
راستش این قسمت خیلی قابل توضیح دادن نیست و به قول معروف : حلوای تن تنانی، تا نخوری ندانی!!!</p>
<h3>نمایش خطا‌ها و اخطارها</h3>
<p>اشتباهات نحوی syntax و یا حتی غلط‌های املایی برنامه‌نویسی (منظورم از این واژه اختراعی اشتباهاتی همچون جا انداختن آکولاد و امثال این است) مشکلی است که به وفور پیش می‌آید. پس یک IDE خوب باید آنها را تشخیص داده و به شما اعلام کند و گیر خود را تا زمان تصحیح پابرجا نگه دارد.</p>
<h3>دوباره سازی و سازندگی کد &#8211; Refactoring and code generation</h3>
<p>این ویژگی، از آن ویژگی‌هایی است که به هیچ شکلی نمی‌شه از آن گذشت! بعضی اوقات پیش می‌آید که مجبور به دوباره نویسی و یا تغییر مکان کلاس‌ها، توابع و یا شاید فایل‌ها هستیم و اینکار در پروژه‌های کوچک هم کار راحتی به حساب نمی‌آید. چه برسد به &#8230;<br />
سه امکان refactoring که بیشتر به کار می‌آید رو در زیر لیست کردم:</p>
<ul>
<li> Move که تمام includeها و requireها را به هنگام انتقال فایلی از جایی به جای دیگر بروز می‌کند تا مشکلی در روند اجرای پروژه پیش نیاد.</li>
<li> Rename که این اطمینان را می‌دهد که از تغییر نام هر چیزی هیچ مشکلی برای پروژه پیش نخواهد آمد.</li>
<li> Safe delete که شما را مطمئن می‌کند که حذف یک فایل پروژه آسیبی به سایر قسمت‌ها وارد نمی‌کند.</li>
</ul>
<p>علاوه بر این برخی IDEها امکان ایجاد کد‌های مربوط به ساخت توابع سازنده، گیرنده‌ها و &#8230; را نیز فراهم می‌کنند.</p>
<h3>اشکال‌زدایی &#8211; Debugging</h3>
<p>معمولاْ کد‌نویسان php برای اشکال‌زدایی کد‌ها از دستور echo و die استفاده می‌کنند. اما این شیوه هرگز جای اشکال‌زدایی خط‌به‌خط را برای برنامه‌نویس نمی‌تواند پر کند. مخصوصاْ در برنامه‌های بزرگ‌تر. یک IDE خوب این امکان را برای کدنویس مهیا می‌کند.</p>
<h3>سیستم کنترل نسخه &#8211; Versioning system</h3>
<p>این سیستم می‌تواند در هر دو شیوه توسعه فردی و گروهی مفید باشد. این ویژگی امکان مقایسه کد فعلی را با نسخه‌های پیشین بصورت تصویری ایجاد می‌کند. همچنین امکان کپی کردن تغییرات به سایر ورژن‌ها و برگشتن به وضعیت قبلی و ادغام تغییرات ایجاد شده توسط سایر اعضاء تیم را هم برای ما مهیا می‌کند.<br />
<img class="aligncenter size-full wp-image-537" title="code_diff" src="http://moshtaghi.ir/weblog/wp-content/uploads/2009/06/code_diff.png" alt="code_diff" width="546" height="214" /><br />
هنگامی که شما تغییرات را چک کرده و آنها را اعمال نمودید، یکی کردن IDE با سیستم‌های کنترل نسخه‌ای همچون CVS، SVN و &#8230; بسیار بهتر از اجرای یک برنامه جدا برای کار با آنها می‌باشد.</p>
<h3>خصوصیات سمت مشتری &#8211; Client-side features</h3>
<p>کمتر پیش می‌آید تا کد‌های  php بصورت جدا نوشته شوند و معمولاْ به همراه کد‌های HTML و همچنین CSS و java script می‌آیند. در نتیجه امکان Code complation برای این قسم کد‌ها در فایل‌های php می‌تواند بسیار سودمند و پرکاربرد باشد.</p>
<h3>کدام IDE تمام این ویژگی‌ها را شامل می‌شود؟</h3>
<p>همانطور که می‌دانید در دنیای متن‌باز برنامه‌های بسیار پر قدرت و مفیدی یافت می شوند. در زمینه IDEها هم می‌توان به جرات گفت که بهترین IDEها OpenSource هستند.<br />
با اندکی دیکتاتوری و بدون هیچ توضیحی ۲ دسته را اینجا نام می‌بریم:</p>
<h4>IDEهای مبتنی بر Eclipse</h4>
<p>فکر می‌کنم <a href="http://www.eclipse.org/" target="_blank">پلتفرم Eclipse</a> معرف حضور بیشتر دوستان باشد، افزونه‌های بسیاری نیز برای کار با php روی Eclipse وجود دارند که برخی از آنها عبارتند از: <a href="http://www.eclipse.org/pdt/" target="_blank">PDT</a>، <a href="http://www.zend.com/products/studio/" target="_blank">Zend Studio</a>، <a href="http://www.aptana.com/php" target="_blank">Aptana PHP</a> و همچنین <a href="http://aptana.com/studio#content_pro" target="_blank">Aptana Studio Pro</a> .<br />
نکته: Aptana را می‌توان بصورت مجزا از Eclipse هم نصب کرد</p>
<h4><a href="http://www.netbeans.org/" target="_blank">NetBeans</a></h4>
<p>این IDE تقریباْ نو ظهور هم، بسیار مناسب می‌باشد و البته برای کار روی Eclipse ساخته نشده است. بیشتر ویژگی‌های سایر IDEها را دارد و خوشبختانه OpenSource هم می‌باشد. با توجه به توسعه سریع، روان و جالب آن آینده بسیار روشنی را پیش روی دارد.</p>
<h3>نتیجه اخلاقی</h3>
<p>آقای الکساندر ماکارو (Alexander Makarov) در مجله <a href="http://www.smashingmagazine.com" target="_blank">Smashing</a>، بررسی جالبی بین این IDEها انجام دادند که به شما پیشنهاد می‌کنم حتماْ آن را <a href="http://spreadsheets.google.com/ccc?key=pV8XyUSUOM7ET07rn4n7NYA" target="_blank">از این آدرس</a> مطالعه کنید.<br />
بنده شخصاْ بعد از مشاهده این مقایسه و تست کردن دو افزونه Aptana و PDT به این نتیجه رسیدم که با همون PDT کار کنم. چون اگر حقیقت را بخواهید همین PDT هم کلی از سرم زیاده و خیلی امکانات دارد که هنوز نشناخته‌ام، اما فکر می‌کنم Aptana امکانات جانبی بیشتری نسبت به PDT دارد. امکانات و ویژگی‌های Zend Studio هم که غیر قابل انکار است، اما من پول ندارم. NetBeans هم مطمئناْ چیز خوبی است چون توی یکی از توییت‌های <a href="http://alvanweb.com" target="_blank">مرتضی الوانی</a> خوندم که از اون استفاده می‌کنه.<br />
در هر صورت انتخاب من، فعلاْ Eclipse و پلاگین PDT است و با آن راحتم. بهترین شیوه برای نصب آن هم استفاده از بسته <a href="http://www.eclipse.org/pdt/downloads/" target="_blank">PDT All In One</a> است. با حجم تقریبی 140mb که بعد از Extract کردن آماده استفاده است. بروی کلیه پلتفرم‌های لینوکس ۳۲ و ۶۴، مکینتاش و ویندوز هم قابل اجرا می‌باشد. (<a href="http://www.eclipse.org/pdt/downloads/" target="_blank">از این آدرس می‌توانید نسخه مناسب با سیستم خود را دریافت کنید</a>)</p>
<h3>و اما ادامه ماجرا</h3>
<p>تا کنون به نتیجه نسبتاْ خوبی برای قسمت اول عنوان این پست رسیدیم، یعنی IDE خود را برای کار با php انتخاب کردیم. اما برای کار با سیمفونی باید تا حدودی IDE را با خواسته‌های خود سازگار کنیم. اینکار را به بخش‌های مختلفی همچون symfony code completion در PDT، ایجاد رنگ‌بندی برای فایل‌های YAML و استفاده از پلاگین Subclipse برای کار با SVN تقسیم می‌کنیم که در قسمت دوم این مقاله به شرح آن خواهیم پرداخت.</p>
<p><a href="http://weblog.alvanweb.com/2008/11/26/setting-up-eclipse-to-work-with-cakephp/" target="_blank">بیشتر راجع به مقدمات Eclipse در الوان‌وب</a></p>
<p><strong>پ‌ن</strong> : این نیمچه مقاله رو با الهام و ادقام <a href="http://www.smashingmagazine.com/2009/02/11/the-big-php-ides-test-why-use-oneand-which-to-choose/" target="_blank">این نوشته از مجله Smashing</a> و مطلبی در <a href="http://trac.symfony-project.org/wiki" target="_blank">ویکی symfony</a> نوشتم.</p>
<img src="http://www.moshtaghi.ir/weblog/?ak_action=api_record_view&id=389&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://weblog.moshtaghi.ir/2009/06/best-php-ide-and-compatible-with-symfony/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
