<?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>آموزش پی اچ پی &#8211; طراحی سایت، ربات تلگرام و راهکارهای هوش مصنوعی | پشتیبانی 24 ساعته | مشاوره رایگان | Piero.ir</title>
	<atom:link href="https://piero.ir/category/php-learn/feed/" rel="self" type="application/rss+xml" />
	<link>https://piero.ir</link>
	<description>Piero.ir ارائه‌دهنده طراحی سایت حرفه‌ای، ساخت ربات تلگرام، اتوماسیون n8n، هوش مصنوعی، یادگیری ماشین و راه‌اندازی استارتاپ‌های نوآورانه. راهکارهای اختصاصی و مشتری‌محور برای رشد کسب‌وکار شما.</description>
	<lastBuildDate>Mon, 10 Nov 2025 12:11:26 +0000</lastBuildDate>
	<language>fa-IR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://piero.ir/wp-content/uploads/2025/08/logopiero-100x100.png</url>
	<title>آموزش پی اچ پی &#8211; طراحی سایت، ربات تلگرام و راهکارهای هوش مصنوعی | پشتیبانی 24 ساعته | مشاوره رایگان | Piero.ir</title>
	<link>https://piero.ir</link>
	<width>32</width>
	<height>32</height>
</image> 
        <wp_options>
            <wp_option>
                <name>
                    shopengine_activated_templates                </name>
                <val>
                    a:0:{}                </val>
            </wp_option>
        </wp_options>
        	<item>
		<title>نصب Linux  Nginx  MySQL  PHP بر روی لینوکس</title>
		<link>https://piero.ir/%d9%86%d8%b5%d8%a8-linux-nginx-mysql-php-%d8%a8%d8%b1-%d8%b1%d9%88%db%8c-%d9%84%db%8c%d9%86%d9%88%da%a9%d8%b3/</link>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Mon, 10 Jul 2017 12:52:59 +0000</pubDate>
				<category><![CDATA[آموزش پی اچ پی]]></category>
		<category><![CDATA[آموزش رایگان]]></category>
		<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[سایر آموزشها]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php7]]></category>
		<category><![CDATA[نصب nginx]]></category>
		<category><![CDATA[نصب nginx بروی لینوکس]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=1083</guid>

					<description><![CDATA[انجین ایکس ( Nginx ) یکی از وب سرور هایی است که بسیاری از مدیران سایت های پربازدید را به سوی خود جلب نموده است. انجین ایکس علاوه بر وب سرور، ریورس پراکسی سرور ( reverse proxy server ) و میل پراکسی سرور ( mail proxy server ) نیز می باشد که  بصورت متن باز ( open [&#8230;]]]></description>
										<content:encoded><![CDATA[<div dir="rtl">انجین ایکس ( Nginx ) یکی از وب سرور هایی است که بسیاری از مدیران سایت های پربازدید را به سوی خود جلب نموده است. انجین ایکس علاوه بر وب سرور، ریورس پراکسی سرور ( reverse proxy server ) و میل پراکسی سرور ( mail proxy server ) نیز می باشد که  بصورت متن باز ( open source ) ارائه شده است و از پروتکل های http , https , SMTP , POP3 و IMAP پشتیبانی می کند. انجین ایکس به گونه ای طراحی شده است که همزمان با پشتیبانی از تعداد کانکشن های بسیار بالا ، عملکرد مناسب و مصرف کم رم را به همراه داشته باشد. این وب سرور محبوب بر روی سیستم عامل های مختلفی از جمله لینوکس ، mac os و سولاریس قابل نصب می باشد. nginx توسط ایگور سیسویو ( igor sysoev ) ساخته شده است، ایگور در سال ۱۹۷۰ در شهر آلماتی قزاقستان به دنیا آمده است و فارغ التحصیل دانشگاه ایالتی مسکو می باشد.</div>
<p dir="rtl">کار ساخت nginx از سال ۲۰۰۲ آغاز گردید و اولین نسخه آن در سال ۲۰۰۴ منتشر گردید. در حال حاضر نزدیک به ۱۲ درصد وب سایت های جهان یعنی چیزی در حدود ۲۲ میلیون وب سایت از nginx به عنوان وب سرور خود استفاده می کنند.</p>
<p dir="rtl"><strong>چگونه وب سرور Nginx را بر روی سرور لینوکس خود نصب نمائیم؟</strong></p>
<p dir="rtl">در این آموزش به نصب LEMP بروی سرورهای ابونتو با استفاده از دستور apt می پردازیم .</p>
<h1 dir="rtl">گام اول :نصب NGINX</h1>
<p>برای شروع ترمینال خود را باز کرده و دستورات زیر را تایپ می کنیم .</p>
<pre class="lang:default decode:true ">    sudo apt-get update
    sudo apt-get install nginx
</pre>
<p>در صورتی که firewall ufw استفاده می کنید کد زیر را بزنید</p>
<pre class="lang:default decode:true ">sudo ufw allow 'Nginx HTTP'</pre>
<p>با کذ زیر می توانید ازufw خود مطلع شوید</p>
<pre class="lang:default decode:true ">sudo ufw status</pre>
<p>خروجی باید به شرح زیر باشد</p>
<pre class="lang:default decode:true ">Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)</pre>
<p>&nbsp;</p>
<p>درصورتی که در حال حاضر سرور apache را نصب کرده اید با کد زیر آن را stop کنید و سرویس ngnix را اجرا کنید :</p>
<pre class="lang:default decode:true ">service apache2 stop
service ngnix start</pre>
<p>در کد اول آپاچی متوقف می شود و در کد دوم ngnix شروع به کار می کند .</p>
<p><strong>در صورتی که ngnix با موفقیت نصب شده باشد با زدن <a href="http://localhost" target="_blank" rel="noopener">http://localhost</a> درون مرور گر صفحه زیر نشان داده میشود</strong> :</p>
<p><img decoding="async" src="https://assets.digitalocean.com/articles/lemp_ubuntu_1604/nginx_default.png" /></p>
<p>&nbsp;</p>
<h1>نصب بانک اطلاعاتی</h1>
<p>به منظور نصب mysql از کد زیر استفاده می نماییم :</p>
<pre class="lang:default decode:true ">sudo apt-get install mysql-server</pre>
<p>ولی پیشنهاد می شود بانک اطلاعاتی maria db را نصب نمایید که در مقاله زیر به طور کامل به آن پرداخته ایم :</p>
<p>[irp posts=&#8221;620&#8243; name=&#8221;مهاجرت از Mysql به MariaDb&#8221;]</p>
<p>&nbsp;</p>
<h1>نصب php</h1>
<p>به طور کلی برای سازگاری php و nginx می بایست <code>php-fpm</code> را نصب نمود و در کل روال عادی نصب php را داریم :</p>
<pre class="lang:default decode:true ">sudo apt-get install php-fpm php-mysql</pre>
<p>قطعه کد بالا php را نصب نموده و تنظیمات مورد نظر جهت استفاده nginx را انجام می دهد.</p>
<h2>تنظیمات php برای nginx</h2>
<p>با کد زیر وارد تنظیمات <code>php-fpm</code> برای تنظیم php برروی سرورهای nginx می شویم :</p>
<pre class="lang:default decode:true">sudo nano /etc/php/7.0/fpm/php.ini</pre>
<p>در فایل مربوطه به دنبال گزینه cgi.fix_pathinfo می گردیم که در حالت پیش فرض به صورت زیر است:</p>
<pre class="lang:default decode:true">;cgi.fix_pathinfo=1</pre>
<p>به منظور تصحیح عملکرد ; را از ابتدا برداشته و مقدارش را برابر ۰ قرار می دهیم:</p>
<pre class="lang:default decode:true ">cgi.fix_pathinfo=0</pre>
<p>حالا کافی است php را با کد زیر  ریست نماییم :</p>
<pre class="lang:default decode:true ">sudo systemctl restart php7.0-fpm</pre>
<p>در صورتی که کد بالا جواب نداد از کد زیر برای ریست php استفاده نمایید :</p>
<pre class="lang:default decode:true ">service  php7.1-fpm restart</pre>
<h1>ساخت فایل تنظیمات NGINX</h1>
<p>امنون فقط یک گام مانده تا به lemp برسیم کافی است دستور زیر را بزنیم :</p>
<pre class="lang:default decode:true ">sudo nano /etc/nginx/sites-available/default</pre>
<p>این فایل حاوی تنظیمات پیش فرض nginx است بهتر است به مقدار زیر تغییرش دهیم:</p>
<pre class="lang:default decode:true ">server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name server_domain_or_IP;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}
</pre>
<p>فایل بالا تنظیمات مناسب جهت استفاده php از nginx  می باشد .</p>
<p>بعد از اتمام تغییر فایل را بسته و نمظیمات را با کد زیر تست نمایید :</p>
<pre class="lang:default decode:true ">sudo nginx -t</pre>
<p>در صورتی که خطایی مشاهده نشد کد زیر را در برای بارگزاری دوباره nginx بزنید :</p>
<pre class="lang:default decode:true ">sudo systemctl reload nginx</pre>
<p>یا :</p>
<pre class="lang:default decode:true ">service  nginx restart
</pre>
<p>&nbsp;</p>
<p>تبریک نصب شما با موفقیت انجام شده و شما می توانید با ساختن فایل php.info و قرار دادن تابع phpinfo() مطابق کد زیر سرور خود را تست نمایید :</p>
<pre class="lang:default decode:true ">&lt;?php
phpinfo();</pre>
<p><img decoding="async" src="https://assets.digitalocean.com/articles/lemp_ubuntu_1604/php_info.png" /></p>
<p>با تشکر &#8211; پیروز جنابی</p>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>هوک (hooks) در کد ایگنایتر</title>
		<link>https://piero.ir/%d9%87%d9%88%da%a9-hooks-%d8%af%d8%b1-%da%a9%d8%af-%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1/</link>
					<comments>https://piero.ir/%d9%87%d9%88%da%a9-hooks-%d8%af%d8%b1-%da%a9%d8%af-%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1/#respond</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Thu, 12 Jan 2017 09:17:44 +0000</pubDate>
				<category><![CDATA[آموزش پی اچ پی]]></category>
		<category><![CDATA[آموزش کد ایگنایتر]]></category>
		<category><![CDATA[codeegniter]]></category>
		<category><![CDATA[آموزش فریم ورک پی اچ پی]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=689</guid>

					<description><![CDATA[هوک (hooks) در کد ایگنایتر هوک (hooks) در کد ایگنایتر &#8211; گسترش چارچوب هسته با استفاده از هوک در کد ایگنایتر شما می توانید ساختار اصلی کد ایگنایتر را تغییر دهید بدون اینکه در هسته (core) تغییری ایجاد نمایید .در واقع هنگامی که کد ایگنایتر اجرا می شود شما می توانید هوک را در زیر [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2>هوک (hooks) در کد ایگنایتر</h2>
<h3>هوک (hooks) در کد ایگنایتر &#8211; <span id="result_box" class="short_text" lang="fa" tabindex="-1">گسترش <span class="">چارچوب هسته</span></span></h3>
<p style="text-align: justify;">با استفاده از هوک در کد ایگنایتر شما می توانید ساختار اصلی کد ایگنایتر را تغییر دهید بدون اینکه در هسته (core) تغییری ایجاد نمایید .در واقع هنگامی که کد ایگنایتر اجرا می شود شما می توانید هوک را در زیر کار اجرا نمایید . به طور مثال شما می خواهید کدی را اجرا نمایید قبل از اینکه کنترلر اجرا شود .</p>
<h3>فعال سازی هوک (hooks) در کد ایگنایتر</h3>
<p>جهت فعال سازی هوک (hooks) در کد ایگنایتر باید فایل پیکر بندی ر ا تنظیم نمایید بنابراین در فایل <strong>application/config/config.php</strong> تغییر زیر را اعمال می نماییم.</p>
<pre class="lang:default decode:true" dir="ltr">$config['enable_hooks'] = TRUE;</pre>
<h3>تعریف هوک (hooks) در کد ایگنایتر</h3>
<p>هوک ها در فایل <strong>application/config/hooks.php</strong> تعریف می شود و هر هوک دارای یک آرایه است .</p>
<pre class="lang:default decode:true" dir="ltr">$hook['pre_controller'] = array(
        'class'    =&gt; 'MyClass',
        'function' =&gt; 'Myfunction',
        'filename' =&gt; 'Myclass.php',
        'filepath' =&gt; 'hooks',
        'params'   =&gt; array('beer', 'wine', 'snacks')
);</pre>
<p>توجه نمایید اندیس آرایه در واقع همان ویژگی هوک شما می باشد . در ایجا مثلا &#8216;pre_controller&#8217; می باشد در ضیر به شرح مثال بالا می پردازیم:</p>
<ul class="simple">
<li dir="ltr" style="text-align: left;"><strong>class</strong> نام کلاس.</li>
<li dir="ltr" style="text-align: left;"><strong>function</strong> نام تابع برای صدا زدن.</li>
<li dir="ltr" style="text-align: left;"><strong>filename</strong> نام فایل.</li>
<li dir="ltr" style="text-align: left;"><strong>filepath</strong> نام پوشه مورد نظر.</li>
<li dir="ltr" style="text-align: left;"><strong>params</strong> پارامترهای ارسالی به تابع.</li>
</ul>
<p dir="rtl">تکته : فایل شما باید در پوشه <em>application</em> باشد و ترجیحا از توی پوشه hooks .</p>
<h3 dir="rtl">صدا زدن چندین هوک (hooks) در کد ایگنایتر</h3>
<p>برای صدا زدن چندین هوک حتی با ایندکسهای یکسان کافی است طبق روند معمولی عمل کنیم :</p>
<pre class="lang:default decode:true ">$hook['pre_controller'][] = array(
        'class'    =&gt; 'MyClass',
        'function' =&gt; 'MyMethod',
        'filename' =&gt; 'Myclass.php',
        'filepath' =&gt; 'hooks',
        'params'   =&gt; array('beer', 'wine', 'snacks')
);

$hook['pre_controller'][] = array(
        'class'    =&gt; 'MyOtherClass',
        'function' =&gt; 'MyOtherMethod',
        'filename' =&gt; 'Myotherclass.php',
        'filepath' =&gt; 'hooks',
        'params'   =&gt; array('red', 'yellow', 'blue')
);</pre>
<p>&nbsp;</p>
<p dir="rtl">توجه حتما به [] در ابتدای هوک توجه نمایید:</p>
<pre class="lang:default decode:true">$hook['pre_controller'][]</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h3 dir="rtl">اندیس های هوک (hooks) در کد ایگنایتر</h3>
<ul class="simple">
<li dir="ltr" style="text-align: left;"><strong>pre_system خیلی زود در سیستم صدا زده می شود حتی قبل از مسیر یابها و چیزهای دیگر</strong>.</li>
<li dir="ltr" style="text-align: left;"><strong>pre_controller قبل از هر کتنرلری صدا زده می شود</strong>.</li>
<li dir="ltr" style="text-align: left;"><strong>post_controller_constructor می توان گفت در بعد از سازنده کنترلر  و قبل از صدا زدن هر گونه تابع کنترلر</strong>.</li>
<li dir="ltr" style="text-align: left;"><strong>post_controller بعد از صدا زدن کنترلر</strong>.</li>
<li dir="ltr" style="text-align: left;"><strong>display_override دوباره سازی  e <tt class="docutils literal"><span class="pre">_display()</span></tt> متد</strong>.</li>
<li dir="ltr" style="text-align: left;"><strong>cache_override <tt class="docutils literal"><span class="pre">_display_cache() صدا زده شدن به همراه</span></tt></strong> .</li>
<li dir="ltr" style="text-align: left;"><strong>post_system در آخر پس از انجام همه کارها صدا زده می شود</strong>.</li>
</ul>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/%d9%87%d9%88%da%a9-hooks-%d8%af%d8%b1-%da%a9%d8%af-%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>کتاب آموزش کدایگنایتر 3</title>
		<link>https://piero.ir/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%af%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1-3/</link>
					<comments>https://piero.ir/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%af%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1-3/#comments</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Mon, 02 Jan 2017 05:15:21 +0000</pubDate>
				<category><![CDATA[آموزش پی اچ پی]]></category>
		<category><![CDATA[آموزش رایگان]]></category>
		<category><![CDATA[آموزش طراحی سایت]]></category>
		<category><![CDATA[آموزش کد ایگنایتر]]></category>
		<category><![CDATA[دانلود رایگان]]></category>
		<category><![CDATA[سایر آموزشها]]></category>
		<category><![CDATA[codeegniter]]></category>
		<category><![CDATA[آموزش php]]></category>
		<category><![CDATA[آموزش برنامه نویسی]]></category>
		<category><![CDATA[آموزش فریم ورک پی اچ پی]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=674</guid>

					<description><![CDATA[کتاب آموزش کدایگنایتر 3 امروزه نیاز به برنامه نویسی جهت ساخت و سفارشی سازی برنامه های کامپیوتری هر روز بیشتر از قبل است . ضمن اینکه هر روز ما بیشتر به سمت اینترنت گرایش پیدا می کنیم و برنامه ها از حالات تکی و یک جا به سمت برنامه های تحت وب می رود  ،که [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>کتاب آموزش کدایگنایتر 3</h1>
<p>امروزه نیاز به برنامه نویسی جهت ساخت و سفارشی سازی برنامه های کامپیوتری هر روز بیشتر از قبل است . ضمن اینکه هر روز ما بیشتر به سمت اینترنت گرایش پیدا می کنیم و برنامه ها از <strong>حالات تکی و یک جا</strong> به سمت ب<strong>رنامه های تحت وب</strong> می رود  ،که دارای مزایای زیادی است از جمله <strong>وابسته نبودن به جا و مکان ، امنیت بالا ، عدم وابستگی به سیستم عامل خاص ، قدرت مانور بالا و &#8230;</strong><br />
ار آن رو بر آوردیم که یکی از قوی ترین <strong>فریم ورک های پی اچ پی</strong> را برای شما آموزش دهیم . اما دو سوال مطرح می شود :</p>
<p><strong>چرا پی اچ پی ؟</strong> نمی توان کدام زبان برنامه نویسی برتر دانست ولی زبان برنامه نویسی پی اچ پی  پر کار برد ترین زبان تحت وب می باشد که سالیان زیاد است که شرکتهای بزرگ از آن استفاده می کنند و چون بازمتن می باشد دارای هزاران فریم ورک ، ویرایشگر و ماژول های رایگان در اینترنت می باشد .(کتاب آموزش کدایگنایتر &#8211; جلد ۱ )</p>
<p><strong>چرا کد ایگنایتر ؟</strong> و باز هم نمی توان گفت کدام فریم ورک قوی تر می باشد ولی کد ایگنایتر در بسیاری از آمارهای اینترنتی در مقام اول و یا دوم قرار دارد و این بخاطر راحتی و قدرت مانور بالای آن می باشد . شما با کد ایگنایتر می توانید برنامه های تحت و یا وب سایتهای پر قدرت بسازید.(کتاب آموزش کدایگنایتر &#8211; جلد ۱ )</p>
<p>مدتها پیش سعی بر آن آوردیم بتوانیم کتاب آموزش کامل کدایگنایتر را در اختیار هم وطنان عزیزمان قرار دهیم ، در حال حاضر این کتاب جلد شماره یک می باشد و هر جلد به صورت دوره ای از مطالب وب سایت پیرو (piero.ir) انتشار می یابد و شما می توانید جدید ترین نکات کد ایگنایتر را در وب سایت ما ببینید و استفاده کنید . همچنین شما نیز می توانید مقالات خود را برای ما ارسال نمایید تا با اسم شما انتشار یابد.<br />
<strong>درصورت بروز مشکل خوشحال می شویم بتوانیم کمکی به شما بکنیم .</strong></p>
<p>&nbsp;</p>
<p style="text-align: center;"><span style="color: #ff0000;"><strong>امیدوارم بتوانم به همراه تیم وفادارم خدمتی به شما دوستان کرده باشم – پیروز جنابی (مدیر و موسس پیرو)</strong></span></p>
<h3><a href="https://ketabesabz.com/book/29698/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D8%AA%D8%A7%D8%A8-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%B1%DB%8C%D8%B9-%DA%A9%D8%AF-%D8%A7%DB%8C%DA%AF%D9%86%D8%A7%DB%8C%D8%AA%D8%B1" target="_blank" rel="noopener">دانلود کتاب آموزش کدایگنایتر۳</a></h3>
<p>&nbsp;</p>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%da%a9%d8%af%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1-3/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>تبدیل اعداد به حروف در php و کدایگنایتر</title>
		<link>https://piero.ir/%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d8%a7%d8%b9%d8%af%d8%a7%d8%af-%d8%ad%d8%b1%d9%88%d9%81-php/</link>
					<comments>https://piero.ir/%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d8%a7%d8%b9%d8%af%d8%a7%d8%af-%d8%ad%d8%b1%d9%88%d9%81-php/#respond</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Wed, 09 Nov 2016 13:59:12 +0000</pubDate>
				<category><![CDATA[آموزش پی اچ پی]]></category>
		<category><![CDATA[آموزش کد ایگنایتر]]></category>
		<category><![CDATA[افزونه های کد ایگنایتر]]></category>
		<category><![CDATA[برنامه های پی اچ پی]]></category>
		<category><![CDATA[سایر آموزشها]]></category>
		<category><![CDATA[codeegniter]]></category>
		<category><![CDATA[آموزش php]]></category>
		<category><![CDATA[آموزش برنامه نویسی]]></category>
		<category><![CDATA[آموزش فریم ورک پی اچ پی]]></category>
		<category><![CDATA[اسکریپت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[سورس پی اچ پی]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=535</guid>

					<description><![CDATA[تبدیل اعداد به حروف در php و کدایگنایتر از قدیم تا به حال یکی از خواسته هایی بوده که در بیشتر برنامه ها مورد استفاده قرار میگیرد به همین دلیل این افزونه ساده و کاربردی را برای شما انتشاد دادیم . ما در اینجا ابتدا به کد php آن می پردازیم و بعد آن را [&#8230;]]]></description>
										<content:encoded><![CDATA[<h5 style="text-align: justify;">تبدیل اعداد به حروف در php و کدایگنایتر از قدیم تا به حال یکی از خواسته هایی بوده که در بیشتر برنامه ها مورد استفاده قرار میگیرد به همین دلیل این افزونه ساده و کاربردی را برای شما انتشاد دادیم . ما در اینجا ابتدا به کد php آن می پردازیم و بعد آن را به صورت کتابخانه ای در کد ایگنایتر نیز معرفای می کنیم . توجه داشته باشید ما تبدیل اعداد به حروف در php و کدایگنایتر هم به زبان فارسی هم به زبان انگلیسی بررسی می کنیم.این الگوریتم مناسب برای استفاده در برنامه های حسابداری و برنامه های عملیاتی میباشد.</h5>
<p>&nbsp;</p>
<h2>تبدیل اعداد به حروف در php و کدایگنایتر به زبان فارسی</h2>
<p>این کد کامل تبدیل اعداد به حروف در php و کدایگنایتر  می باشد که به صورت php می باشد و شما به راحتی می توانید استفاده نمایید کافی است تابع زیر را در هر جایی که می خواهید استفاده نمایید.</p>
<pre class="lang:default decode:true ">public function convert_number($number) {

        $ones = array("", "یک",'دو&amp;nbsp;', "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه", "ده", "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نونزده");
        $tens = array("", "", "بیست", "سی", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود");
        $tows = array("", "صد", "دویست", "سیصد", "چهار صد", "پانصد", "ششصد", "هفتصد", "هشت صد", "نه صد");


        if (($number &lt; 0) || ($number &gt; 999999999)) {
			throw new Exception("Number is out of range");
		}
		$Gn = floor($number / 1000000);
		/* Millions (giga) */
		$number -= $Gn * 1000000;
		$kn = floor($number / 1000);
		/* Thousands (kilo) */
		$number -= $kn * 1000;
		$Hn = floor($number / 100);
		/* Hundreds (hecto) */
		$number -= $Hn * 100;
		$Dn = floor($number / 10);
		/* Tens (deca) */
		$n = $number % 10;
		/* Ones */
		$res = "";
		if ($Gn) {
			$res .= $this-&gt;convert_number($Gn) .  " میلیون و ";
		}
		if ($kn) {
			$res .= (empty($res) ? "" : " ") .$this-&gt;convert_number($kn) . " هزار و";
		}
		if ($Hn) {
			$res .= (empty($res) ? "" : " ") . $tows[$Hn] . " و ";
		}
		if ($Dn || $n) {
			if (!empty($res)) {
				$res .= "";
			}
			if ($Dn &lt; 2) {
				$res .= $ones[$Dn * 10 + $n];
			} else {
				$res .= $tens[$Dn];
				if ($n) {
					$res .= " و " . $ones[$n];
				}
			}
		}
		if (empty($res)) {
			$res = "صفر";
		}
		$res=rtrim($res," و");
		return $res;
	}</pre>
<h4></h4>
<h4>توضیح کد تبدیل اعداد به حروف در php و کدایگنایتر : این یک تابع بازگشتی می باشد که ابتدا توسط سه آرایه موارد یکان و دهگان و صدگان را معرفی می کنیم</h4>
<pre class="lang:default decode:true">        $ones = array("", "یک",'دو&amp;nbsp;', "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه", "ده", "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نونزده");
        $tens = array("", "", "بیست", "سی", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود");
        $tows = array("", "صد", "دویست", "سیصد", "چهار صد", "پانصد", "ششصد", "هفتصد", "هشت صد", "نه صد");

</pre>
<p>در گام بعدی ما حداکثر و حدا قل برای کدمان قرار می دهیم :</p>
<pre class="">      if (($number &lt; 0) || ($number &gt; 999999999)) {
   throw new Exception("Number is out of range");
}</pre>
<p>و عملیات بازگشت پذیر برای محاسبه</p>
<pre class="">$Gn = floor($number / 1000000);
/* Millions (giga) */
$number -= $Gn * 1000000;
$kn = floor($number / 1000);
/* Thousands (kilo) */تبدیل اعداد به حروف در php و کدایگنایتر
$number -= $kn * 1000;
$Hn = floor($number / 100);
/* Hundreds (hecto) */
$number -= $Hn * 100;
$Dn = floor($number / 10);
/* Tens (deca) */
$n = $number % 10;
/* Ones */</pre>
<p>و در نهایت رشته کارکتر حروف را می سازیم و بازگشت می دهیم.</p>
<pre class="">$res = "";
if ($Gn) {
   $res .= $this-&gt;convert_number($Gn) .  " میلیون و ";
}
if ($kn) {
   $res .= (empty($res) ? "" : " ") .$this-&gt;convert_number($kn) . " هزار و";
}
if ($Hn) {
   $res .= (empty($res) ? "" : " ") . $tows[$Hn] . " و ";
}
if ($Dn || $n) {
   if (!empty($res)) {
      $res .= "";
   }
   if ($Dn &lt; 2) {
      $res .= $ones[$Dn * 10 + $n];
   } else {
      $res .= $tens[$Dn];
      if ($n) {
         $res .= " و " . $ones[$n];
      }
   }
}
if (empty($res)) {
   $res = "صفر";
}
$res=rtrim($res," و");
return $res;</pre>
<p>&nbsp;</p>
<h2>تبدیل اعداد به حروف در php و کدایگنایتر به زبان انگلیسی</h2>
<pre class="">public function convert_number($number) {
   if (($number &lt; 0) || ($number &gt; 999999999)) {
      throw new Exception("Number is out of range");
   }
   $Gn = floor($number / 1000000);
   /* Millions (giga) */
   $number -= $Gn * 1000000;
   $kn = floor($number / 1000);
   /* Thousands (kilo) */
   $number -= $kn * 1000;
   $Hn = floor($number / 100);
   /* Hundreds (hecto) */
   $number -= $Hn * 100;
   $Dn = floor($number / 10);
   /* Tens (deca) */
   $n = $number % 10;
   /* Ones */
   $res = "";
   if ($Gn) {
      $res .= $this-&gt;convert_number($Gn) .  "Million";
   }
   if ($kn) {
      $res .= (empty($res) ? "" : " ") .$this-&gt;convert_number($kn) . " Thousand";
   }
   if ($Hn) {
      $res .= (empty($res) ? "" : " ") .$this-&gt;convert_number($Hn) . " Hundred";
   }
   $ones = array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eightteen", "Nineteen");
   $tens = array("", "", "Twenty", "Thirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eigthy", "Ninety");
   if ($Dn || $n) {
      if (!empty($res)) {
         $res .= " and ";
      }
      if ($Dn &lt; 2) {
         $res .= $ones[$Dn * 10 + $n];
      } else {
         $res .= $tens[$Dn];
         if ($n) {
            $res .= "" . $ones[$n];
         }
      }
   }
   if (empty($res)) {
      $res = "zero";
   }
   return $res;
}</pre>
<p>&nbsp;</p>
<h2>تبدیل اعداد به حروف در  کدایگنایتر</h2>
<p>به منظور استفاده در کد ایگنایتر کافی است که کد بالا را در یک لایبرری کد ایگنایتر لود کنیم در واقع کد را به صورت زیر در پوشه library ساخته و هر جایی که نیاز داشتیم از آن استفاده میکنیم پیشنهاد میکنیم حتما مطلب آموزش کتابخانه ها را در کد ایگنایتر مطالعه نمایید.</p>
<p>[irp posts=&#8221;432&#8243; name=&#8221;کتابخانه ها (librarys) در کد ایگنایتر&#8221;]</p>
<pre class="">&lt;?php
if (!defined('BASEPATH'))
  exit('No direct script access allowed');

class pieronum2word {

   public function convert_number($number) {
      if (($number &lt; 0) || ($number &gt; 999999999)) {
         throw new Exception("Number is out of range");
      }
      $Gn = floor($number / 1000000);
      /* Millions (giga) */
      $number -= $Gn * 1000000;
      $kn = floor($number / 1000);
      /* Thousands (kilo) */
      $number -= $kn * 1000;
      $Hn = floor($number / 100);
      /* Hundreds (hecto) */
      $number -= $Hn * 100;
      $Dn = floor($number / 10);
      /* Tens (deca) */
      $n = $number % 10;
      /* Ones */
      $res = "";
      if ($Gn) {
         $res .= $this-&gt;convert_number($Gn) .  "Million";
      }
      if ($kn) {
         $res .= (empty($res) ? "" : " ") .$this-&gt;convert_number($kn) . " Thousand";
      }
      if ($Hn) {
         $res .= (empty($res) ? "" : " ") .$this-&gt;convert_number($Hn) . " Hundred";
      }
      $ones = array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eightteen", "Nineteen");
      $tens = array("", "", "Twenty", "Thirty", "Fourty", "Fifty", "Sixty", "Seventy", "Eigthy", "Ninety");
      if ($Dn || $n) {
         if (!empty($res)) {
            $res .= " and ";
         }
         if ($Dn &lt; 2) {
            $res .= $ones[$Dn * 10 + $n];
         } else {
            $res .= $tens[$Dn];
            if ($n) {
               $res .= "" . $ones[$n];
            }
         }
      }
      if (empty($res)) {
         $res = "zero";
      }
      return $res;
   }
}
?&gt;</pre>
<p>&nbsp;</p>
<p>و بعد هر جایی خواستیم آن را صدا می زنیم و استفاده می کنیم به صورت زیر</p>
<p>بارگزاری لایبرری تبدیل-اعداد-حروف-php</p>
<pre class="" dir="ltr">$this-&gt;load-&gt;library('pieronum2word');</pre>
<p>استفاده تبدیل-اعداد-حروف-php</p>
<pre class="" dir="ltr">$this-&gt;pieronum2word-&gt;convert_number($all_totalprd)</pre>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/%d8%aa%d8%a8%d8%af%db%8c%d9%84-%d8%a7%d8%b9%d8%af%d8%a7%d8%af-%d8%ad%d8%b1%d9%88%d9%81-php/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ویو (Views) در کد ایگنایتر</title>
		<link>https://piero.ir/codeegniter-views/</link>
					<comments>https://piero.ir/codeegniter-views/#respond</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Tue, 18 Oct 2016 08:40:11 +0000</pubDate>
				<category><![CDATA[آموزش پی اچ پی]]></category>
		<category><![CDATA[آموزش رایگان]]></category>
		<category><![CDATA[آموزش کد ایگنایتر]]></category>
		<category><![CDATA[codeegniter]]></category>
		<category><![CDATA[آموزش php]]></category>
		<category><![CDATA[آموزش برنامه نویسی]]></category>
		<category><![CDATA[آموزش فریم ورک پی اچ پی]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=459</guid>

					<description><![CDATA[ویو (Views) در کد ایگنایتر ویو (Views) در کد ایگنایتر متشکل از فایلهایی می باشد که نمایش را برای کاربران را فراهم می سازد درواقع شما نیاز دارید به نمایش اطلاعات به کاربر مثل سربرگ ، جداول و &#8230; که این کار در فایل های view انجام می شود. توجه داشته باشید که فایلهای view [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>ویو (Views) در کد ایگنایتر</h1>
<p>ویو (Views) در کد ایگنایتر متشکل از فایلهایی می باشد که نمایش را برای کاربران را فراهم می سازد درواقع شما نیاز دارید به نمایش اطلاعات به کاربر مثل سربرگ ، جداول و &#8230; که این کار در فایل های view انجام می شود.</p>
<p>توجه داشته باشید که فایلهای view به تنهایی صدا زده نمی شود و شما می بایست حتما در controller  فایلهای view را صدا بزنید .به همین منظور به شما توصیه می شود مطالب فصل قبل را به خوبی تسلط داشته باشید.</p>
<p>[irp posts=&#8221;443&#8243; name=&#8221;کنترلرها (Controllers) در کد ایگنایتر&#8221;]</p>
<h2>ساخت view</h2>
<p>جهت ساخت view  یک فایل ساده htmlرا در آدرس <em>application/views/</em> بسازید، به طور مثال فایلی با محتوای زیر.</p>
<pre class="lang:default decode:true">&lt;html&gt;
&lt;head&gt;
        &lt;title&gt;My Blog&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
        &lt;h1&gt;
Welcome to my Blog!
&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<h2>بارگزاری view</h2>
<p>جهت بارگزاری view در controoler کد زیر را فراخوانی می کنیم.</p>
<pre class="lang:default decode:true ">$this-&gt;load-&gt;view('name');</pre>
<p>Name اسم فایل شما می باشد.</p>
<h2>مثال کاربردی ویو (Views) در کد ایگنایتر</h2>
<p>۱-فایل کنترلر با محتوای زیر را در آدرس controller/blog.php می سازیم</p>
<pre class="lang:default decode:true">&lt;?class Blog extends CI_Controller {
         public function index()
       {
           $this-&gt;load-&gt;view('blogview');
 }
}</pre>
<ul>
<li>وحالا فایل view را در آدرس views/blogview.php</li>
<li>آدرس زیر را فراخوانی می کنیم.</li>
</ul>
<p dir="ltr"> example<strong>.</strong>com<strong>/</strong>index<strong>.</strong>php<strong>/</strong>blog<strong>/</strong></p>
<h2>بارگزاری چندین فایل view</h2>
<p>برای بارگزاری چندین فایل view  تنها کافی است که کد مربوطه را چندین بار صدا بزنیم .</p>
<pre class="lang:default decode:true">&lt;?php

class Page extends CI_Controller {

     public function index()        {

       $data['page_title'] = 'Your title';

      $this-&gt;load-&gt;view('header');

     $this-&gt;load-&gt;view('menu');

          $this-&gt;load-&gt;view('content', $data);

              $this-&gt;load-&gt;view('footer');        } }</pre>
<p>در مثال بالا توسط آرایه data مقادیری را به فایل content  ارسال کردیم که در آینده به طور کامل شرح می دهسم.</p>
<h2>مرتب سازی فایلهای view با استفاده از پوشه بندی</h2>
<p>همان گونه که در فصل قبلی مرتب سازی را برای فایلهای کنترلر توضیح دادیم برای فایلهای view هم صدق می کند  و شما می توانید همانند دستور زیر استفاده کنید.</p>
<pre class="lang:default decode:true ">$this-&gt;load-&gt;view('directory_name/file_name');</pre>
<h2>ارسال مقادیر به فایلهای view</h2>
<p>و اما مهمترین چیز در این قسمت ارسال مقادیر به فایلهای view می باشد . در واقع شما بعد از انجام عملیاتها میخواهید طلاعاتی را به قسمت VIEW بفرستید برای نمایش به طور مثال می خواهید آرگومانی را که در کنترلر دریافت نموده اید با عدد ۲ جمع کنید و به فایل VIEW برای چاپ بفرستید. شما می بایست فایل کنترلر را همانند زیر بسازید.</p>
<pre class="lang:default decode:true">&lt;?php
 class Page extends CI_Controller {
         public function index($id)
     {
 $data['id'] = $id;
              $this-&gt;load-&gt;view('content', $data);
   }
 }</pre>
<p>همانگونه که می بینید آرایه ای داریم به نام data  و همچنین عنصری به نام id  ، که مقدار را از آرگومانها که به طور کامل در قسمت کنترلرها توضیح داده شده است ، به contentمی فرستیم و شما در فایل view آن را می توانید چاپ کنید.</p>
<pre class="lang:default decode:true">&lt;html&gt;
&lt;body&gt;
        &lt;h1&gt;
&lt;?php echo $id;?&gt;
&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>توجه داشته باشید شما برای چاپ مقدار می توانید از فرمت کوتاه شده آن استفاده نمایید.</p>
<p dir="ltr">&lt;?=$id?&gt;</p>
<h2>ساخت حلقه در view</h2>
<p>فرض کنید ارایه ای متشکل از مقدارهای مختلف را به فایل view می فرستید و می خواهید چاپ کنید ، شما می بایست حلقه ای در فایل ایجاد کرده و مقادیر را چاپ کنید به مثال زیر توجه نمایید.</p>
<pre class="lang:default decode:true ">&lt;?phpclass Blog extends CI_Controller {

     public function index()        {

              $data['todo_list'] = array('Clean House', 'Call Mom', 'Run Errands');

          $data['title'] = "My Real Title";

        $data['heading'] = "My Real Heading";

               $this-&gt;load-&gt;view('blogview', $data);        }}</pre>
<p>همانگونه که می بینید در فایل کنترلر آرایه data داریم که در آن ،آرایه ای به نام todo_list داریم و آن را به blogview  می فرستیم .</p>
<pre class="lang:default decode:true">&lt;html&gt;
&lt;head&gt;

   &lt;title&gt;&lt;?php echo $title;?&gt;&lt;/title&gt;
   &lt;/head&gt;
   &lt;body&gt;
         &lt;h1&gt;
         &lt;?php echo $heading;?&gt;

&lt;/h1&gt;
  &lt;h3&gt;My Todo List&lt;/h3&gt;
       &lt;ul&gt;

      &lt;?php foreach ($todo_list as $item):?&gt;
             &lt;li&gt;&lt;?php echo $item;?&gt;&lt;/li&gt;

  &lt;?php endforeach;?&gt;
    &lt;/ul&gt;
    &lt;/body&gt;
    &lt;/html&gt;</pre>
<p>همانگونه که می بینید با استفاده از یک حلقه <strong>forech</strong>  مقادیر را چاپ می کنیم.</p>
<h2>خروجی پذیری view</h2>
<p>فکر کنید می خواهید خروجی یک فایل view را داخل متغیری بریزید و چاپ نکنید ، با دستر زیر می توانید این کار را بکنید.</p>
<pre class="lang:default decode:true ">$string = $this-&gt;load-&gt;view('myfile', '', TRUE);</pre>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/codeegniter-views/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>کنترلرها (Controllers) در کد ایگنایتر</title>
		<link>https://piero.ir/%da%a9%d9%86%d8%aa%d8%b1%d9%84%d8%b1%d9%87%d8%a7-controllers-%d8%af%d8%b1-%da%a9%d8%af-%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1/</link>
					<comments>https://piero.ir/%da%a9%d9%86%d8%aa%d8%b1%d9%84%d8%b1%d9%87%d8%a7-controllers-%d8%af%d8%b1-%da%a9%d8%af-%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1/#respond</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Mon, 17 Oct 2016 19:59:32 +0000</pubDate>
				<category><![CDATA[آموزش پی اچ پی]]></category>
		<category><![CDATA[آموزش رایگان]]></category>
		<category><![CDATA[آموزش کد ایگنایتر]]></category>
		<category><![CDATA[codeegniter]]></category>
		<category><![CDATA[آموزش php]]></category>
		<category><![CDATA[آموزش برنامه نویسی]]></category>
		<category><![CDATA[آموزش فریم ورک پی اچ پی]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=443</guid>

					<description><![CDATA[کنترلرها (Controllers) در کد ایگنایتر codeigniter جهت ورود به دوره آموزش تصویری کد ایگنایتر کلیک کنید . در ویدیو آموزش زیر controller ها در کد ایگنایتر به صورت کامل به شما آموزش داده می شود. کنترلرها (Controllers)  رابط کاربر با برنامه می باشند و آدرسها را مدیریت میکنند همچنین رابط بین model و view می [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>کنترلرها (Controllers) در کد ایگنایتر codeigniter</h1>
<h2 style="text-align: center;"><a href="http://www.piero.ir/codeigniter/#startlearncodeigniter" target="_blank" rel="noopener" data-wplink-edit="true">جهت ورود به دوره آموزش تصویری کد ایگنایتر کلیک کنید .</a></h2>
<h6 class="tag-cloud-link" style="text-align: center;">در ویدیو آموزش زیر controller ها در کد ایگنایتر به صورت کامل به شما آموزش داده می شود.</h6>
<div id="15424698704312015"><script type="text/JavaScript" src="https://www.aparat.com/embed/EX9rm?data[rnddiv]=15424698704312015&amp;data[responsive]=yes"></script></div>
<p>کنترلرها (Controllers)  رابط کاربر با برنامه می باشند و آدرسها را مدیریت میکنند همچنین رابط بین model و view می باشند .</p>
<p dir="ltr">example<strong>.</strong>com<strong>/</strong>index<strong>.</strong>php<strong>/</strong>blog<strong>/</strong></p>
<p>در مثال بالا فایل Blog.php که در پوشه controller قرار دارد را بارگزاری می کند و هچنین تابع index که به صورت پیش فرض می باشد.</p>
<pre class="lang:default decode:true">&lt;?phpclass Blog extends CI_Controller {
         public function index()        {   
             echo 'Hello World!';        
}
}</pre>
<p>در صورتی که شما فایل Blog.php را همانند مثال بالا بسازید و آدرس زبر را بارگزاری نمایید مقدار hello world  چاپ می شود.</p>
<p dir="ltr">example<strong>.</strong>com<strong>/</strong>index<strong>.</strong>php<strong>/</strong>blog<strong>/</strong></p>
<p> توجه: نام کنترلرها حتما باید با اسم بزرگ شروع شود ‘B’</p>
<pre class="lang:default decode:true ">&lt;?phpclass Blog extends CI_Controller { }</pre>
<h1>متد ها در کنترلرها (Controllers) در کد ایگنایتر</h1>
<p>همان گونه که در مثال بالا مشاهده نمودید ما کدهایمان را درون تابع index()  نوشته شده درواقع تابع پیش فرض ما برای با رگزاری index می باشد ولی شما قابلیت دارید هر تابعی را درون فایل CONTROLLER بارگزاری نمایید .به مثال زیر توجه نمایید.</p>
<pre class="lang:default decode:true">&lt;?php
class Blog extends CI_Controller {  
       public function index()     
   {    
            echo 'Hello World!';     
   }      

   public function comments()     
   {
                echo 'Look at this!';       

 }
}</pre>
<p>درا ین مثال ما دو تابع داریم به نام های index و comments  برای صدا زدن تابع comments به صورت آدرس زیر تابع comments را بارگزاری می شود.</p>
<p>example<strong>.</strong>com<strong>/</strong>index<strong>.</strong>php<strong>/</strong>blog<strong>/</strong>comments<strong>/</strong></p>
<p>با بارگزاری آدرس فوق شما باید متن جدید را مشاهده کنید .&#8221;look at this&#8221;</p>
<h1>ارسال مقدار به توابع و متدها در کنترلرها (Controllers) در کد ایگنایتر</h1>
<p>شما امکان ارسال مقدار به متدها را دارید به طور مثال وقتی بخواهید شناسه ای را به توابعی بفرستید و طبق اطلاعات آن شناسه مطلبی را نشان دهد .</p>
<p>example<strong>.</strong>com<strong>/</strong>index<strong>.</strong>php<strong>/</strong>products<strong>/</strong>shoes<strong>/</strong>sandals<strong>/</strong>123</p>
<p>همان گونه که می بینید می خواهیم به تابعی به نام shoes  که کفشها را نشان میدهد ، مقدار sandal و ۱۲۳ را ارسال کنیم.</p>
<pre class="lang:default decode:true">&lt;?php
class Products extends CI_Controller {
         public function shoes($sandals, $id)       
 {
               echo $sandals;                echo $id;        
}
}</pre>
<p>همانگونه که مشاهده میکنید تابع shoes درمتغیر sandal و id را دریافت و چاپ میکند بعد از اجرای برنامه sandal و ۱۲۳ چاپ می شود و درون تابع مقدارهای $sandals و $id  مقدار می گیرند.</p>
<h1>تعریف کنترلر پیش فرض در کنترلرها (Controllers) در کد ایگنایتر</h1>
<p>کنترلر پیش فرض : کنترلی است که در صورتی که ما برنامه را بدون آدرسی صدا بزنیم آن کنترل بارگزاری می شود . که مقدار آن را در فایل  <strong>application/config/routes.php</strong><strong> می توانید تغییر دهید.</strong></p>
<p dir="ltr">$route[&#8216;default_controller&#8217;] <strong>=</strong> &#8216;blog&#8217;;</p>
<p>توجه: در مقدار دهی بالا فقط کافی است کنترلر را بنوسید بدون هیچ آدرس دیگری در صورتی که مقدار تابع را مشخص نکنید تابع index() در آن کنترلر بارگزاری میشود.</p>
<h1>طبقه بندی کنترلرها با استفاده از پوشه بندی</h1>
<p>شما به راحتی می توانید فایلهای کنترلرها را طبقه بندی کنید و آنها را با فولدرها جدا سازی کنید به طور مثال:</p>
<p dir="ltr">application<strong>/</strong>controllers<strong>/</strong>products<strong>/</strong>Shoes<strong>.</strong>php</p>
<p> وبه صورت زیر میتوانید از کنترلر مورد نظر استفاده کنید.</p>
<p dir="ltr">example<strong>.</strong>com<strong>/</strong>index<strong>.</strong>php<strong>/</strong>products<strong>/</strong>shoes<strong>/</strong>show<strong>/</strong>123</p>
<h1>سازنده های کلاس</h1>
<p>هنگامی که شما می خواهید کلاسی سفارشی بسازید و تمامی اجزای کلاس ریشه آنرا بارگزاری نمایید از سازنده ها استفاده می کنیم.</p>
<p dir="ltr"><strong>parent</strong><strong>::</strong>__construct();</p>
<p>در کد ایگنایتر شما کنترلری می سازید و از ریشه ان سازنده می سازید همانند کد زیر بعد از آن شما تمامی کنترلرها را می توانید از آن کنترلر ریشه بگیرید و به این صورت شما می توانید اجزای سفارشی خود را در کلاس ریشه ساخته و هر موقع نیاز داشتید بارگزاری نمایید.</p>
<pre class="lang:default decode:true">&lt;?php
class Blog extends CI_Controller {
         public function __construct()
       {              
  parent::__construct();       
         // Your own constructor code     
   }
}</pre>
<p dir="rtl"> توجه:جهت دریافت لیست نامهای رزرو شده به آدرس زیر مراجعه نمایید</p>
<p dir="ltr"><a href=".http://www.codeigniter.com/user_guide/general/reserved_names.html" target="_blank" rel="noopener">.http://www.codeigniter.com/user_guide/general/reserved_names.html</a></p>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/%da%a9%d9%86%d8%aa%d8%b1%d9%84%d8%b1%d9%87%d8%a7-controllers-%d8%af%d8%b1-%da%a9%d8%af-%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>کمک کننده (Helper)در کد ایگنایتر</title>
		<link>https://piero.ir/helper-codeegniter/</link>
					<comments>https://piero.ir/helper-codeegniter/#respond</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Mon, 17 Oct 2016 19:16:33 +0000</pubDate>
				<category><![CDATA[آموزش پی اچ پی]]></category>
		<category><![CDATA[آموزش رایگان]]></category>
		<category><![CDATA[آموزش کد ایگنایتر]]></category>
		<category><![CDATA[آموزش php]]></category>
		<category><![CDATA[آموزش برنامه نویسی]]></category>
		<category><![CDATA[آموزش فریم ورک پی اچ پی]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=434</guid>

					<description><![CDATA[کمک کننده (Helper)در کد ایگنایتر کمک کننده (Helper)در کد ایگنایتر  , همانطور که از اسم آن پیداست ، وقتی شما به کمک نیاز دارید helper ها به کمک شما می آیند مثلا در مواقعی که به اجزای فرم نیاز دارید کمک کننده فرم به کمک شما می آید و اجزای فرم را برای شما فراهم [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>کمک کننده (Helper)در کد ایگنایتر</h1>
<p>کمک کننده (Helper)در کد ایگنایتر  , همانطور که از اسم آن پیداست ، وقتی شما به کمک نیاز دارید helper ها به کمک شما می آیند مثلا در مواقعی که به اجزای فرم نیاز دارید کمک کننده فرم به کمک شما می آید و اجزای فرم را برای شما فراهم می سازد.</p>
<p>توجه داشته باشید کمک کننده ها در پوشه helper ساخته می شوند هم در system و هم در application  و در هنگام صدا زدن ابتدا پوشه application/helper چک می شود و بعد پوشه system/helper  ، به طور ساده می توان گفت که فایلهای کمک کننده های خود را درون application/helper بسازید و استفاده کنید.</p>
<p>همانند اجزای دیگر کد ایگنایتر برای استفاده از کد ایگنایتر باید آنها را صدا بزنیم به طور مثال :</p>
<pre class="lang:default decode:true">$this-&gt;load-&gt;helper('name');</pre>
<h2>بارگزاری چندین helper به صورت همزمان</h2>
<p>به منظور بارگزاری چندین فایل کمک کنندده به طور همزمان بجای یک فایل در تابع صداکننده چندین فایل را در یک آرایه صدا می زنیم همانند مثال زیر:</p>
<pre class="lang:default decode:true ">$this-&gt;load-&gt;helper(

        array('helper1', 'helper2', 'helper3')

);</pre>
<p>همچنین برای لود شدن اتوماتیک یک کمک کننده می توانید آن را در فایل <strong>application/config/autoload.php</strong><strong> در قسمت </strong><strong>helper </strong><strong>صدا بزنید.</strong></p>
<h2>استفاده ازکمک کننده (Helper)در کد ایگنایتر</h2>
<p>استفاده از کمک کننده ها بسیار راحت و جذاب است ، بعد از صدا زدن کمک کننده ، تابع مورد نظر را در هرجایی که بخواهیم صدا می زنیم مانند مثال زیر:</p>
<pre class="lang:default decode:true">&lt;?php echo anchor('blog/comments', 'Click Here');?&gt;</pre>
<h2> وراثت در کمک کننده ها“Extending” Helpers</h2>
<p>برای ارث گرفتن یک کمک کننده ابندا فایل مورد نظر را درون  application/helpers/ folder با همان اسم کمک کننده اصلی بسازید ولی باید اسمش با MY_ شروع شود که این اسم درون تنظیمات قابل تغییر است.</p>
<p>نکته : درون فایل config  برای تغییر پیشوند کلاس مقدار روبه رو را مقدار دهی کنید :</p>
<pre class="lang:default decode:true">$config['subclass_prefix'] = 'MY_';</pre>
<p>توجه نمایید اگر نیاز دارید کمک کننده ها را طبق سلیقه و نیاز خود تغییر بدهید بهتر است دست به فایل اصلی نزنید و از روش بالا برای تغییر آن کمک کننده استفاده نمایید.</p>
<p>به مثال زیر توجه کنید:</p>
<p>برای بازسازی کمک کننده آرایه به ثرتیب زیر ئیش می رویم:</p>
<p>فایل مورد نظر را ساخته و تابع آن را بازنویسی می کنیم <strong>application/helpers/MY_array_helper.php</strong></p>
<pre class="lang:default decode:true">// any_in_array() is not in the Array Helper, so it defines a new function

function any_in_array($needle, $haystack)

{

        $needle = is_array($needle) ? $needle : array($needle);


        foreach ($needle as $item)

        {

                if (in_array($item, $haystack))

                {

                        return TRUE;

                }

        }

        return FALSE;

}


// random_element() is included in Array Helper, so it overrides the native function

function random_element($array)

{

        shuffle($array);

        return array_pop($array);

}</pre>
<p>&nbsp;</p>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/helper-codeegniter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>کتابخانه ها (library) در کد ایگنایتر</title>
		<link>https://piero.ir/codeegniter-librarys/</link>
					<comments>https://piero.ir/codeegniter-librarys/#respond</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Mon, 17 Oct 2016 19:06:37 +0000</pubDate>
				<category><![CDATA[آموزش پی اچ پی]]></category>
		<category><![CDATA[آموزش رایگان]]></category>
		<category><![CDATA[آموزش کد ایگنایتر]]></category>
		<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[آموزش php]]></category>
		<category><![CDATA[آموزش برنامه نویسی]]></category>
		<category><![CDATA[آموزش فریم ورک پی اچ پی]]></category>
		<guid isPermaLink="false">http://www.piero.ir/?p=432</guid>

					<description><![CDATA[کتابخانه ها (library) در کد ایگنایتر کتابخانه ها (library) در کد ایگنایتر از پر مصرف ترین عناصر کد ایگنایتر می باشد ، شما می توانید کتابخانه ای بسازید و در آن توابعی معرفی کنید و هر موقع خواستید آن را صدا بزنید و از ان استفاده کنید و یا  کتابخانه های پیش فرض خود کد [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>کتابخانه ها (library) در کد ایگنایتر</h1>
<p>کتابخانه ها (library) در کد ایگنایتر از پر مصرف ترین عناصر کد ایگنایتر می باشد ، شما می توانید کتابخانه ای بسازید و در آن توابعی معرفی کنید و هر موقع خواستید آن را صدا بزنید و از ان استفاده کنید و یا  کتابخانه های پیش فرض خود کد ایگنایتر را بار گزاری و استفاده کنید یا از کتابخانه های رایج در پی اچ پی استفادده کنید به طور مثال می توانید از کتابخانه tpdf در  کتابخانه استفاده کنید .</p>
<p>کتابخانه های سیستم در <strong><em>system/libraries/</em></strong><em> موجود می باشد که شما به طریق زیر می توانید آنها را فراخوانی نمایید.</em></p>
<pre class="lang:default decode:true ">$this-&gt;load-&gt;library('class_name');</pre>
<p>&nbsp;</p>
<p>به طور مثال کتابخانه ای که برای اعتبار سازی فرمها استفاده می شود که در آینده به طور کامل به آن می ئردازیم</p>
<pre class="lang:default decode:true">$this-&gt;load-&gt;library('form_validation');</pre>
<p>&nbsp;</p>
<p>همچنین شما می توانید با استفاده از آرایه های چندین کتابخانه را بارگزاری نمایید مانند مثال زیر:</p>
<pre class="lang:default decode:true ">$this-&gt;load-&gt;library(array('email', 'table'));</pre>
<p>&nbsp;</p>
<h2>ساخت کتابخانه ها (library) در کد ایگنایتر</h2>
<p>به منظور ساخت کتابخانه یک کلاس پی اچ پی که با حرف بزرگ شروه شود در پوشه <strong>application/libraries</strong> می سازیم ، توجه داشته باشید شما می توانید با اسم کلاسی که در پوشه سیستم کد ایگنایتر وجود دارد بسازید و هنگامی که اینکار را می کنید کتابخانه ای که در پوشه <strong>application/libraries</strong> ساختید الویت دارد به سیستم و ان را بارگزاری می نماید در این زمان شما می توانید آن را جایگزین کتابخانه اصلی نمایید تا بتواانید از ویژگی های کتابخانه اصلی استفاده نمایید.</p>
<p>تو جه داشته باشید برای نام گزاری به قواعد زیر توجه نمایید:</p>
<ul>
<li>حتما با حرف بزرگ شروع شود مثل Piero</li>
<li>نام کلاس و نام فایل باید یکسان باشد</li>
</ul>
<p>برای ساخت کتابخانه ابتدا ساختار آن را همانند زیر تعریف کنید</p>
<pre class="lang:php decode:true">&lt;?php

defined('BASEPATH') OR exit('No direct script access allowed');


class Someclass {


        public function some_method()

        {

        }

}</pre>
<h2>استفاده از کتابخانه ها (library) در کد ایگنایتر</h2>
<p>ابتدا باید کتابخانه را صدا بزنیم</p>
<pre class="lang:default decode:true ">$this-&gt;load-&gt;library('someclass');</pre>
<p>و بعد هرجا که خواستیم می توانیم صدا بزنیم</p>
<pre class="lang:default decode:true ">$this-&gt;someclass-&gt;some_method();</pre>
<h2>ارسال پارامتر به کتابخانه ها (library) در کد ایگنایتر</h2>
<p>شما می توانید یک کتابخانه را بسازید و در سازنده آن پارا متر های مورد نظر را دریافت و پردازش نمایید.</p>
<pre class="lang:default decode:true">$params = array('type' =&gt; 'large', 'color' =&gt; 'red');


$this-&gt;load-&gt;library('someclass', $params);</pre>
<p>در کتابخانه :</p>
<pre class="lang:default decode:true">&lt;?php defined('BASEPATH') OR exit('No direct script access allowed');


class Someclass {</pre>
<pre class="lang:default decode:true">      public function __construct($params)

        {

                // Do something with $params

        }

}</pre>
<h2>نکته مهم در کتابخانه ها (library) در کد ایگنایتر</h2>
<p>توجه داشته باشید شما نمی توانید از همه عناصری که قبلا در کنترلر و مدل استفاده می کردید استفاده کنید مانند فرم و یا بانک اطلاعاتی به این منظور شما باید متد شبیه ساز $this را صدا بزنید و از ان استفاده کنید.</p>
<pre class="lang:default decode:true">$CI =&amp; get_instance();

$CI-&gt;load-&gt;helper('url');

$CI-&gt;load-&gt;library('session');

$CI-&gt;config-&gt;item('base_url');</pre>
<p>به طور مثال</p>
<pre class="lang:default decode:true">class Example_library {

        protected $CI;

        // We'll use a constructor, as you can't directly call a function

        // from a property definition.

        public function __construct()

        {

                // Assign the CodeIgniter super-object

                $this-&gt;CI =&amp; get_instance();

        }

        public function foo()

        {

                $this-&gt;CI-&gt;load-&gt;helper('url');

                redirect();

        }

        public function bar()

        {

                echo $this-&gt;CI-&gt;config-&gt;item('base_url');

        }</pre>
<h2>جاگزاری کتابخانه شما با کتابخانه اصلی</h2>
<p>فرض کنید می خواهید کتابخانه بسازید که جایگزین کتابخانه email شود ، به همان ترتیب معمولی پیش میرویم  <em>application/libraries/Email.php</em><em> و بعد کلاسش را تعریف می کنیم </em></p>
<pre class="lang:default decode:true">class CI_Email {

}</pre>
<p>توجه داشته باشید کلاسش حتما باید با CI_ شروع شود .</p>
<p>و برای صدا زدن نیز به صورت معمولی صدایش می زنیم</p>
<pre class="lang:default decode:true">$this-&gt;load-&gt;library('email');</pre>
<h2>ارث بری در توابع جایگرین کتابخانه ها (library) در کد ایگنایتر</h2>
<p>شما می توانید وقتی تابعی را جایگزین می کنید ، کاری کنید که از تابع اصلی آن ارث گرفته و تمامی متد آن را بارگزاری نماید . توجه داشته باشید باید اسم کلاستون حتما با MY_ شروع شود (البته این تنظیم قابل تغییر است.</p>
<pre class="lang:default decode:true">$config['subclass_prefix'] = 'MY_';</pre>
<p>به عنوان مثال:</p>
<pre class="lang:default decode:true">class MY_Email extends CI_Email {


}</pre>
<p>و در گام بعذ نیاز است در سازنده آن  سازنده والد را صدا بزنیم</p>
<pre class="lang:default decode:true">class MY_Email extends CI_Email {

        public function __construct($config = array())

        {

                parent::__construct($config);

        }

}</pre>
<p>صدا زدن کلاس ساخته شدن همانند صدا زدن عادی می باشد .</p>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/codeegniter-librarys/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>شروع کار با کدایگنایتر</title>
		<link>https://piero.ir/%d8%b4%d8%b1%d9%88%d8%b9-%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-%da%a9%d8%af%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1/</link>
					<comments>https://piero.ir/%d8%b4%d8%b1%d9%88%d8%b9-%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-%da%a9%d8%af%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1/#respond</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Wed, 21 Sep 2016 05:18:09 +0000</pubDate>
				<category><![CDATA[آموزش پی اچ پی]]></category>
		<category><![CDATA[آموزش رایگان]]></category>
		<category><![CDATA[آموزش کد ایگنایتر]]></category>
		<category><![CDATA[codeegniter]]></category>
		<category><![CDATA[آموزش php]]></category>
		<category><![CDATA[آموزش برنامه نویسی]]></category>
		<category><![CDATA[آموزش فریم ورک پی اچ پی]]></category>
		<guid isPermaLink="false">https://piero.ir/2016/09/21/%d8%b4%d8%b1%d9%88%d8%b9-%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-%da%a9%d8%af%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1/</guid>

					<description><![CDATA[شروع کار با کدایگنایتر  CODEIGNITER فیلم آموزش تصویری کد ایگنایتر &#160; طریقه نصب و راه اندازی برای شروع کار با کدایگنایتر کافی است آن را دانلود کرده و در هاست خود بگذارید . دانلود از لینک : https://www.codeigniter.com/download فایل زیپ را استخراج کرده و کدهای آن را اجرا می کنیم . کار نصب ما تمام [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1 style="text-align: justify;">شروع کار با کدایگنایتر</h1>
<h1 style="text-align: justify;"> CODEIGNITER</h1>
<h3>فیلم آموزش تصویری کد ایگنایتر</h3>
<div id="15416987096175414"><script type="text/JavaScript" src="https://www.aparat.com/embed/nFeqY?data[rnddiv]=15416987096175414&#038;data[responsive]=yes"></script></div>
<p>&nbsp;</p>
<h3 style="text-align: justify;">طریقه نصب و راه اندازی</h3>
<p style="text-align: justify;">برای شروع کار با کدایگنایتر کافی است آن را دانلود کرده و در هاست خود بگذارید .</p>
<ul style="text-align: justify;">
<li>دانلود از لینک : <a href="https://www.codeigniter.com/download" target="_blank" rel="noopener">https://www.codeigniter.com/download</a></li>
<li>فایل زیپ را استخراج کرده و کدهای آن را اجرا می کنیم .</li>
</ul>
<p style="text-align: justify;">کار نصب ما تمام شد بعد از اجرا می بینید که صفحه زیر نمایش می دهد که این صفحه نمایانگر مثالی است</p>
<p style="text-align: justify;">به تصویر زیر توجه نمایید.</p>
<p style="text-align: justify;">همانطور که می بینید این صفحه یک مثال کاربردی است که نشان می دهد شروع کار با کدایگنایتر.</p>
<p style="text-align: justify;">برای تغییرات در فایل نمایشی به آدرس زیر مراجعه نمایید :</p>
<p style="text-align: justify;"><img fetchpriority="high" decoding="async" class=" wp-image-215 aligncenter zoooom" src="http://www.piero.ir/wp-content/uploads/2016/09/codeegniterstartpage-300x240.jpg" alt="codeegniterstartpage" width="532" height="425" /></p>
<p dir="ltr" style="text-align: justify;">application/views/welcome_message.php</p>
<p style="text-align: justify;">در این فایل کدهای html ,css  جهت نمایش این صفحه است.</p>
<p style="text-align: justify;">و برای نمایش تغییر در فایل کنترلر به آدرس زیر مراجعه نمایید:</p>
<p dir="ltr" style="text-align: justify;">application/controllers/welcome.php</p>
<p style="text-align: justify;">در این فایل توابع جهت بارگزاری فایل نمایشی وجود دارد</p>
<h2 style="text-align: justify;">ساختار شروع کار با کدایگنایتر</h2>
<p style="text-align: justify;">به شکل زیر توجه نمایید:</p>
<p style="text-align: justify;"><img decoding="async" class=" wp-image-216 aligncenter zoooom" src="http://www.piero.ir/wp-content/uploads/2016/09/structureci-300x88.jpg" alt="structureci" width="443" height="130" /></p>
<p style="text-align: justify;">تمامی در خواستها به فایل index.php  ارسال می شود . توسط routing  و چک شدن امنیتی به قسمت کنترلر مراجعه می نماید در آنجا اطلاعات از مدل ها یا کتابخانه ها و &#8230; برداشت شده وتوسط view  کش می شود و به کاربر نمایش داده می شود. این ساختار انجام کار در کد ایگنایتر می باشد.</p>
<h2 style="text-align: justify;">ساختار پوشه ها شروع کار با کدایگنایتر</h2>
<p style="text-align: justify;"><img decoding="async" class="wp-image-217 aligncenter zoooom" src="http://www.piero.ir/wp-content/uploads/2016/09/folderci-300x240.jpg" alt="folderci" width="536" height="429" /></p>
<p style="text-align: justify;">همانطور که مشاهده می کنید ساختار پوشه کد ایگنایتر همانند تصویر بالا است که به اختصار هرکدام را توضیح می دهیم:</p>
<p style="text-align: justify;">Application: کلیه کد های شما و برنامه شما در این پوشه قرار می گیرد  و می توانید از این پوشه چند تا داشته باشید به طور مثال پوشعه ای برای قسمت کاربری و پوشه ای برای مدیریت همچنین میتوانید نامش را عوض کنید و در فایل index.php  تغییر دهید</p>
<p style="text-align: justify;">System : کلیه هسته برنامه در این پوشه قرار دارد می توان پوشه هسته را در قسمت root سایت قرار داد که کاربر دسترسی به این پوشه نداشته باشد .</p>
<p style="text-align: justify;">User guid: کلیه موارد راهنمایی در این پوشه قرار دارد.</p>
<p style="text-align: justify;">Index.php : فایل اصلی اجرای برنامه</p>
<h2 style="text-align: justify;">ساختار پوشه application</h2>
<p style="text-align: justify;">Config : تنظیمات برنامه در این پوشه قرار دارد به طور مثال تنظیمات اتصال به بانک اطلاعاتی</p>
<p style="text-align: justify;">Controllers : کلیه فایل های کنترل کننده و هدایت گر در این پوشه قرار می گیرد</p>
<p style="text-align: justify;">Languages: فایلهای برای تعریف زبانهای مختلف</p>
<p style="text-align: justify;">Libraries: کلیه فایل های کتابخانه ای به طور مثال کتابخانه قالب و &#8230;</p>
<p style="text-align: justify;">Models: کلیه فایلهای کار با بانک اطلاعاتی در اینجا قرار می گیرد</p>
<p style="text-align: justify;">Views : و کلیه فایلهای نمایضش به کاریر در اینجا قرار می گیرد</p>
<p style="text-align: justify;">.htaccess : این فایل که مختص به اپاچی بوده یک سری تنظیمات منحصر به فرد را برای سرور شما فراهم می سازد از جمله تنظیمی جهت بهینه سازی url ها که در آینده به آن می پردازیم.</p>
<p style="text-align: justify;">سیستم مورد نیاز جهت اجرای کد ایگنایتر</p>
<ul style="text-align: justify;">
<li><a href="http://php.net/" target="_blank" rel="noopener">PHP</a>version 5.4 or newer is recommended.</li>
</ul>
<p style="text-align: justify;">دیتابیس هایی که در کد ایگنایتر پشتیبانی می شود:</p>
<ul style="text-align: justify;">
<li>MySQL (5.1+) via the <em>mysql</em>(deprecated), <em>mysqli</em> and <em>pdo</em> drivers</li>
<li>Oracle via the <em>oci8</em>and <em>pdo</em> drivers</li>
<li>PostgreSQL via the <em>postgre</em>and <em>pdo</em> drivers</li>
<li>MS SQL via the <em>mssql</em>, <em>sqlsrv</em>(version 2005 and above only) and <em>pdo</em> drivers</li>
<li>SQLite via the <em>sqlite</em>(version 2), <em>sqlite3</em> (version 3) and <em>pdo</em> drivers</li>
<li>CUBRID via the <em>cubrid</em>and <em>pdo</em> drivers</li>
<li>Interbase/Firebird via the <em>ibase</em>and <em>pdo</em> drivers</li>
<li>ODBC via the <em>odbc</em>and <em>pdo</em> drivers (you should know that ODBC is actually an abstraction layer)</li>
</ul>
<h1 style="text-align: justify;">URL در شروع کار با کدایگنایتر</h1>
<p style="text-align: justify;">url ویا آدرس ها در شروع کار با کدایگنایتر به صورت کاملا بهینه می باشد به مثال زیر توجه نمایید:</p>
<p style="text-align: left;">example<strong>.</strong>com<strong>/</strong>news<strong>/</strong>article<strong>/</strong>my_article</p>
<p style="text-align: justify;">این آدرس نشان می دهد که در سایت example  قسمت news و &#8230;</p>
<p style="text-align: justify;">این آدرس هم کاربر پسند می باشد و هم ایده ال برای پیاده سازی ،  این آدرس به راحتی توسط کد ایگنایتر قابل پیاده سازی می باشد .</p>
<p style="text-align: left;">example<strong>.</strong>com<strong>/</strong>class<strong>/</strong>function<strong>/</strong>ID</p>
<p style="text-align: justify;">همان گونه که مشاهده می کنید ساختار آدرسها در کد ایگنایتر بسیار کار آمد می باشد که در زیر شرح می دهیم:</p>
<ul style="text-align: justify;">
<li>پارامتر اول اشاره دارد به کلاس که در قسمت کنترلر قرار دارد</li>
<li>پارامتر دوم اشاره دارد به تابع که در ان کلاس فرار دارد.</li>
<li>وقسمت سوم که اشاره دارد به مقداری که به آن تابع ارسال می شود.</li>
</ul>
<p style="text-align: justify;">توجه:کتابخانه url  (<a href="http://www.codeigniter.com/user_guide/libraries/uri.html" target="_blank" rel="noopener"><em>URI Library</em></a> )  تمامی توابع را برای مدیریت راحت تر آدرسها فراهم می سازد.</p>
<h1 style="text-align: justify;">حذف فایل index.php از آدرس</h1>
<p style="text-align: justify;">به طور پیش فرض در سرورها آدرس به صورت زیر می باشد</p>
<p style="text-align: justify;">example<strong>.</strong>com<strong>/</strong>index<strong>.</strong>php<strong>/</strong>news<strong>/</strong>article<strong>/</strong>my_article</p>
<p style="text-align: justify;">که شما به راحتی با تنظیم وب سرور آپاچی می توانید از نمایش فایل index.php جلوگیری نمایید و آدرسی عرضه نمایید که از دید کاربر بسیار بهتر و مورد پسند تر می باشد.</p>
<p style="text-align: justify;">کافی است که اطلاهات زیر را در فایل .httaccess قرار بدهید:</p>
<pre class="lang:default decode:true">RewriteEngine On
RewriteCond %{REQUEST_FILENAME}
 !-fRewriteCond %{REQUEST_FILENAME}
!-dRewriteRule ^(.*)$ index.php/$1 [L]</pre>
<h1 style="text-align: justify;">افزودن پسوند به آدرسها</h1>
<p style="text-align: justify;">شما به راحتی می توانید به آدرسهای خود پسوند اضافه نمایید به طور مثال به آخر آدرس ها .html اضافه کنیدهمانند مثال زیر:</p>
<p style="text-align: justify;">example<strong>.</strong>com<strong>/</strong>index<strong>.</strong>php<strong>/</strong>products<strong>/</strong>view<strong>/</strong>shoes<strong>.</strong>html</p>
<p style="text-align: justify;">فقط کافی است به داخل فایل config.php  رفته و پارامتر زیر را مقدار دهی نمایید.</p>
<pre class="lang:default decode:true ">$config['url_suffix'] = '.htm';</pre>
<p>&nbsp;</p>
<h1 style="text-align: justify;">فعال سازی query string</h1>
<p style="text-align: justify;">بعضی از مواقع شما نیاز دارید از فرمت query string استفاده نمایید.</p>
<p style="text-align: justify;">index<strong>.</strong>php<strong>?</strong>c<strong>=</strong>products<strong>&amp;</strong>m<strong>=</strong>view<strong>&amp;</strong>id<strong>=</strong>345</p>
<p style="text-align: justify;">در فایل config .php  مقادیر زیر را وارد نمایید</p>
<pre class="lang:default decode:true ">$config['enable_query_strings'] = FALSE;$config['controller_trigger'] = 'c';$config['function_trigger'] = 'm';</pre>
<p style="text-align: justify;">بعد از انجام عملیات فوق آدرس ها به صورت زیر در می آید.</p>
<p style="text-align: justify;">index<strong>.</strong>php<strong>?</strong>c<strong>=</strong>controller<strong>&amp;</strong>m<strong>=</strong>method</p>
<p>&nbsp;</p>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/%d8%b4%d8%b1%d9%88%d8%b9-%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-%da%a9%d8%af%d8%a7%db%8c%da%af%d9%86%d8%a7%db%8c%d8%aa%d8%b1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>معماری MVC</title>
		<link>https://piero.ir/cimvc/</link>
					<comments>https://piero.ir/cimvc/#respond</comments>
		
		<dc:creator><![CDATA[پیروز جنابی]]></dc:creator>
		<pubDate>Wed, 21 Sep 2016 05:05:30 +0000</pubDate>
				<category><![CDATA[آموزش پی اچ پی]]></category>
		<category><![CDATA[آموزش رایگان]]></category>
		<category><![CDATA[آموزش کد ایگنایتر]]></category>
		<category><![CDATA[codeegniter]]></category>
		<category><![CDATA[آموزش php]]></category>
		<category><![CDATA[آموزش برنامه نویسی]]></category>
		<category><![CDATA[آموزش فریم ورک پی اچ پی]]></category>
		<guid isPermaLink="false">https://piero.ir/2016/09/21/cimvc/</guid>

					<description><![CDATA[معماری MVC معماری MVC مخفف model view controller می باشد این معماری که در حال حاضر محبوب ترین معماری می باشد شامل سه قسمت می باشد: model قسمت مدل محل قرار گیری کدهای کار با دیتا بیس  و توسط کلاسها تعریف می شود و از کلاس مرجع مدل انشعاب می گیرد به مدل زیر توجه [&#8230;]]]></description>
										<content:encoded><![CDATA[<h2>معماری MVC</h2>
<p>معماری MVC مخفف model view controller می باشد این معماری که در حال حاضر محبوب ترین معماری می باشد شامل سه قسمت می باشد:</p>
<h4>model</h4>
<p>قسمت مدل محل قرار گیری کدهای کار با دیتا بیس  و توسط کلاسها تعریف می شود و از کلاس مرجع مدل انشعاب می گیرد به مدل زیر توجه نمایید.</p>
<table style="height: 152px;" width="770">
<tbody>
<tr>
<td style="width: 760px;">
<pre class="lang:default decode:true ">Class piero_model extend CI_Model

{

Function add (){//some code}

Functiom edit () {//some code}

</pre>
<p>&nbsp;</p>
<p style="text-align: left;">}</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>در کد ایگنایتر یک سری عملیاتها مانند پرس و جو و کار با دیتابیس به صورت بهینه نوشته شده که شما به راحت ترین راه و بهینه ترین روش می توانید آنها را استفاده نمایید.</p>
<h4>View</h4>
<p>در این قسمت فایلهای نمایشی قرار دارد در واقع کدهای html , css , js ,jquery ,angular,… و هر جیزی که به کاربر نمایش داده می شود.</p>
<h4>Controller</h4>
<p>حالا کنترلر این دو تا را پیوند می دهد و عملیاتهای کنترلی را ما بینشان انجام می دهد.</p>
<p>&nbsp;</p>
<p>[irp posts=&#8221;523&#8243; name=&#8221;مثال کاربردی mvc&#8221;]</p>
<p>[irp posts=&#8221;206&#8243; name=&#8221;فریم ورک چیست و دلیل استفاده از فریم ورک&#8221;]</p>

    <div class="xs_social_share_widget xs_share_url after_content 		main_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content">

		
        <ul>
			        </ul>
    </div> 
]]></content:encoded>
					
					<wfw:commentRss>https://piero.ir/cimvc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
