آوا سام

آوا سام

آموزش جامع برنامه نویسی
آوا سام

آوا سام

آموزش جامع برنامه نویسی

دوره ی آموزشی پروژه محور دفترچه تلفن با Vue.js و Laravel

دوره ی آموزشی پروژه محور دفترچه تلفن با Vue.js و Laravelhttps://avasam.ir/product/27


دوره ی آموزش پروژه محور دفترچه تلفن با Vue.js و فریمورک محبوب Laravel

دوره ی آموزش پروژه محور ساخت دفترچه مخاطبین بصورت single page application یا سایت تک صفحه ای توسط فریمورک Laravel  و فریمورک Vue.js و فریمورک Bulma میباشد . در این پروژه تمرکز اصلی و هدف اصلی ما یادگیری کامل Vue.js نسخه ی دوم میباشد که جدیدترین و بروزترین نسخه ی این فریمورک است . شما با طی کردن این دوره ی آموزشی علاوه بر اینکه خود مبحث ویو جی اس را بصورت کامل یاد میگیرید بلکه نحوه ی استفاده ی Vue در فریمورک محبوب توسعه ی وب سایت به نام Laravel را نیز یاد خواهید گرفت . 

از آنجایی که Vue.js یک فریمورک برای JavaScript خالی است برای دیزاین و طراحی نهایی سایت نیز باید یک فریمورک دیگر استفاده کنید البته چه بهتر که فریمورک شما عاری از هرگونه کد JavaScript باشد ( برعکس بوت استرپ که به جاوااسکریپت محتاج است ) چونکه کارهای مربوط به جاوا اسکریپت را Vue.js برای شما انجام خواهد داد پس برای فرانت اند وب سایت دیگر نیازی به چیز اضافه دیگر مربوط به جاوااسکریپت نیست . 

پس ما انتخابمان فریمورک Bulma است یک فریمورک کاملا ریسپانسیو برای طراحی انواع وب سایت ها به زیبایی هر چه تمام تر ...

Bulma کاملا سازگار با رزولیشین های مختلف از جمله موبایل است . همچنین بولما سبک و سریع تر است و همچنین شما دستتان برای شخصی سازی آن توسط sass آزاد است . 

همچنین Bulma بر پایه ی طراحی جدید Flex است . 

 

سایت SPA یا  single-page application چیست ؟‌

سایت های SPA یا Single Page Application چیست . آموزش ویو جی اس vuejs

سایت single page application همانطور که از اسمش هم پیداست با هدف این بوجود آمده است که سایت ها را درون یک صفحه ی واحد درست همانند یک اپلیکیشن دسکتاپ که باز میشود به اجرا بگذارد .

یعنی با باز کردن صفحه ی یک سایت ابتدا آن صفحه لود شود و بعد دیگر درون همان صفحه هر اتفاقی بیوفتد بدون اینکه کاربر احساس کند مرورگر ریفرش میخورد یا به جای دیگری میرود . 

در واقع جرقه ی اصلی این شیوه از طراحی وب سایت با بوجود آمدن AJAX  خورد که توسعه دهندگان با AJAX دوست داشتند تمام وب سایت خود را پیاده سازی کنند تا کاربری که به سایت آنها مراجعه میکند هیچ ریفرشی نداشته باشه دریافت و ارسال اطلاعات به سمت سرور فقط درون یک درخواست مبتنی بر HTTP کوچک به سمت سرور و برعکس ارسال میشد . 

این درخواست کوچک هرگز از مرورگر درخواست نمیکرد که برای دیدن یک بخش جدید ،‌برای ثبت یک نظردر سایت ، برای جستجوی محصول خاص ،‌برای خرید کردن و ... سایت به صفحات مختلفی برود و هر بار آن صفحات لود شوند . 

بلکه بصورت خیلی ساده هدف این بود که سایت ها مثل یک اپلیکیشن نصب شده باشند که به این هدف هم کاملا رسیده شد . 

فریمورک ها و کتابخانه های JavaScript دست از تلاش خود برنداشتن و Vuejs و Reactjs و Angularjs فریمورک ها و کتابخانه هایی بودن که به توسعه دهنده ساخت سایت های بدون نیاز به ریفرش را به ارمغان آورندند . 

پس سایت SPA یا Single Page Application سایتی است که تک صفحه ای هست و نیاز نیست برای کارهای مختلف ریفرش در مرورگر اتفاق بیوفتد مثل یک برنامه ی نصب شده درون یک مرورگر است . مثلا برنامه ی چت نسخه ی وب تلگرام :) که با انگولار نوشته شده 

 

درباره ی کلیات دوره ی آموزش پروژه محور دفترچه تلفن با Vuejs و Laravel 

دوره ی آموزش پروژه محور Vue.js و Laravel و Bulma برای ساخت سایت تک صفحه ای

در بحش پروژه محور این دوره ی آموزشی ، دفترچه مخاطبین آنلاین ساخته میشود که بتوانیم عملیات CRUD دیتابیس یا همان عملیات CREATE READ UPDATE DELETE را بدون ریفرش کردن صفحه ی مرورگر و بصورت AJAX با استفاده از Vue.js انجام دهیم . 

در این دوره ی آموزشی از فریمورک Laravel پی اچ پی برای ایجاد پروژه و ارتباط آن با Vue.js استفاده میکنیم .

از فریمورک Bulma که یک فریمورک جدید برای css هست بهره میبریم که باعث بالا رفتن سرعت سایت و همچنین ریسپانسیو بودن آن میشود که در دستگاه های موبایل به خوبی یک اپلیکیشن موبایلی نصب شده اجرا میشود . 

نحوه ی کار با axios برای ارسال داده ها بصورت AJAX را آموزش میدهیم و در نهایت میتوان گفت شما الفبای فریمورک قوی Vue.js را در این دوره طی خواهید کرد و مطمئنا مباحث مطرح شده در این دوره هم برای فریمورک Vue.js و هم برای Laravel و هم برای Bulma  بی نظیر است . 

 

سرفصل های دوره ی آموزش پروژه محور ساخت دفترچه مخاطبین آنلاین با Vuejs و Laravel 

جلسه ۱ : 

  • معرفی فریمورک Vue.js و مقایسه آن با انواع فریمورک های JavaScript
  • آموزش دانلود و نصب Node.js و npm
  • آموزش دانلود و نصب Vue.js

جلسه ۲ : 

  • آموزش افزودن صحیح فایل Vue.js به سند HTML
  • آموزش شروع کدنویسی با Vue.js
  • آموزش کار با آبجکت اصلی Vue 
  • آموزش کار با el و انتخاب element مورد نظر 
  • آموزش کار با متد data  و تعریف متغیرهای Vue.js 

جلسه  ۳ : 

  • آموزش مدیریت آبجکت ها در Vue.js
  • آموزش نحوه ی استفاده از console مرورگر کروم جهت مشاهده ی رخ دادها در طول کدنویسی Vue.js و مدیریت خطاهای کدنویسی رخ داده
  • آموزش تغییر لحظه ای داده ها با console
  • آموزش کار با delimiters در Vue.js
  • آموزش استفاده از v-bind: جهت تغییر ویژگی های تگ های HTML با استفاده از Vue.js

جلسه ۴ : 

  • آموزش کار با فرم های HTML و V-bind
  • آموش کار با v-model 
  • آموزش کار با v-model-lazy
  • آموزش کار با checkbox و v-model برای دریافت آیتم های انتخاب شده در فرم HTML
  • آموزش متد  join در Vue.js
  • آموزش کار با v-for یا ساخت حلقه در Vue.js

جلسه ۵ : 

  • آموزش کار با آرایه ها در Vue.js
  • ساخت یک لیست از آیتم های قابل انتخاب در Vue.js
  • آموزش تعریف key برای آیتم های حلقه ی v-for 
  • آموزش شرط if و else و elseif 

جلسه ۶ : 

  • آموزش کار با رویداد کلیک یا v-on:click 
  • آموزش کار با توابع در Vue.js و نوشتن تابع جدید در بخش methods
  • آموزش استفاده از @click بجای v-on:click در رویداد کلیک 
  • آموزش کار با @click.prevent 

جلسه ۷ : 

  • آموزش استایل نویسی با Vue.js
  • آموزش اختصاص کلاس css توسط Vue.js
  • آموزش کار با متد @mousehover در Vue.js
  • اختصاص مقادیر استایل با استفاده از v-model

جلسه ۸ :

  • آموزش Bind کردن انواع کلاس های css با استفاده از Vuejs به همراه مثال 
  • تغییر کلاس های css و استایل element های HTML با استفاده از Vue.js

جلسه ۹ : 

  • آموزش ساخت لیست در Vuejs 
  • آموزش ساخت لیستی از مرورگرها و ورژن های متناظر آنها بصورت تمرین عملی

جلسه ۱۰ : 

  • آموزش انتساب رشته ها  در Vuejs
  • آموزش انجام عملیات ریاضی روی داده های عددی
  • آموزش ایجاد پروژه مبدل داده های ریاضی(سانتی متر) بصورت عملی 

جلسه ۱۱ : 

  • آموزش کار با متد indexOf
  • ساخت یک پروژه سوال و جواب اتوماتیک برای نشان دادن کارآیی indexOf
  • آموزش افزودن Jquery و استفاده از متد Ajax
  • آموزش فراخوانی api جیسان یک وب سرویس
  • آموزش لود کردن محصولات از یک وب سرویس به همراه توضیحات و تصویر و ...

جلسه ۱۲ : 

  • آموزش چرخه ی حیات در Vuejs 
  • آموزش کار با متد beforeCreate
  • آموزش کار با متد Created 
  • آموزش کار با متد beforeMounted
  • آموزش کار با متد Mounted
  • آموزش کار با متد beforeUpdate
  • آموزش کار با متد Updated
  • آموزش کار با متد beforeDestroy
  • آموزش کار با متد destroyed
  • آموزش ایجاد و کار با component های Vue.js
  • آموزش ایجاد template های مختلف با استفاده از Component ها 

جلسه  ۱۳ : 

  • ادامه ی آموزش کار با component ها و ایجاد component های جدید 
  • دریافت json از وب سرویس و نمایش محصولات با استفاده از component ها 
  • آموزش استفاده از component برای افزودن element های جدید 

جلسه ۱۴ : 

  • آموزش نصب و کار با vue.js devtools برای مرورگر کروم 
  • آموزش ایجاد toggle برای نمایش بخشی از متن محصول 
  • آموزش کار با devtools جهت پیدا کردن component های vue.js و مدیریت آنها به آسانی

جلسه ۱۵ :

  • آموزش پیشرفته ی کار با component ها در Vue.js و ایجاد template های بیشتر
  • آموزش کار با scope
  • آموزش افزودن تگ های HTML سفارشی به لیست component ها فراخوانی شده با json

جلسه ۱۶ : 

  • آموزش تعریف متد remove برای پاک کردن یک آیتم از یک لیست در Vue.js 
  • آموزش کار با متد splice در Vue.js 

 

سرفصل دوره ی پروژه محور Vue.js + Laravel ۵ + Bulma

 

جلسه ۱۷ : 

  • آموزش نصب Composer 
  • آموزش نصب فریمورک  Laravel 
  • آموزش نصب Nodejs و npm
  • آموزش دانلود و نصب فریمورک Bulma
  • آموزش نصب Vue.js و Vue-router 

جلسه ۱۸ : 

  • ایجاد view جدید در Laravel 
  • ایجاد route جدید در Laravel 
  • آموزش ایجاد یک view به همراه Vuejs در Laravel 
  • تست و راه اندازی Vuejs و استفاده از Laravel Mix 

جلسه ۱۹ : 

  • آموزش نصب محیط توسعه ی Atom و افزونه های مورد نیاز برای Laravel و Vue.js 
  • آموزش استفاده از دستور npm run watch برای کامپایل css و js های پروژه در یک فایل
  • آموزش ایجاد و استفاده از component مربوط به header و footer سایت توسط Vue.js
  • آموزش استفاده از vue-router در پروژه دفترچه مخاطبین 
  • آموزش ساخت فایل component های مختلف و لود کردن آنها بدون ریفرش شدن مرورگر

جلسه ۲۰ : 

  • آموزش نصب Font Awesome در Laravel با استفاده از npm 
  • ایجاد item برای نمایش مخاطبین در لیست 
  • ایجاد دکمه های مدیریتی مثل ویرایش - حذف - نمایش یک آیتم در دفترچه مخاطبین 
  • آموزش استفاده از پنجره ی modal در bulma و استفاده ی آن توسط Vue.js
  • آموزش کدنویسی رویداد کلیک @click برای نمایش و بستن یک پنجره ی modal

جلسه ۲۱ : 

  • آموزش ایجاد دامنه ی مجازی در xampp بصورت phonebook.me 
  • آموزش ساخت Model جدید در لاراول
  • آموزش ساخت migration جدید در لاراول
  • آموزش ساخت Controller جدید در لاراول از نوع resource
  • آموزش مدیریت جدول دیتابیس با استفاده از Migration 
  • آموزش استفاده از php artisan جهت migrate کردن تغییرات جدول دیتابیس
  •  

جلسه ۲۲ : 

  • آموزش اعتبار سنجی فرم با Laravel Request اختصاصی و Vuejs 
  • آموزش نصب axios و استفاده از آن برای درج اطلاعات در پایگاه داده با استفاده از Model لاراول و Vuejs بصورت ایجکسی ( درج مخاطب جدید )

جلسه ۲۳ : 

  • آموزش ایجاد متد جدید getData در کنترلر برای لود کردن داده های مخاطبین از دیتابیس
  • آموزش لود کردن داده ها توسط axios 
  • آموزش پر کردن لیست از مخاطبین موجود در دیتابیس توسط Vue.js

جلسه ۲۴ : 

  • آموزش ایجاد modal جدید و نمایش آن زمان کلیک شدن نمایش یک مخاطب 
  • آموزش فراخوانی یک مخاطب با آیدی بدون رفرش صفحه توسط axios
  • آموزش نمایش اطلاعات یک مخاطب لود شده در modal ایجاد شده 

جلسه ۲۵ : 

  • آموزش ایجاد modal یا پنجره جدید با استفاده از Vue.js برای عملیات بروزرسانی یک مخاطب خاص از دفترچه مخاطبین
  • آموزش فراخوانی اطلاعات مخاطب از دیتابیس و نمایش ان در فرم modal ،  جهت ویرایش
  • آموزش ثبت تغییرات انجام شده در دیتابیس با Axios و متدهای model

جلسه ۲۶ : 

  • آموزش ایجاد متد delete یک مخاطب خاص از دیتایس با استفاده از axios 
  • آموزش برنامه نویسی متد delete و پاک کردن آیتم انتخاب شده توسط Vue.js و متد destroy کنترلر ، بدون رفرش مرورگر

جلسه ۲۷ : 

  • رفع برخی باگ های پروژه 
  • آموزش تبدیل تمام قسمت های پروژه به یک وب سایت Single Page Application 

جلسه ۲۸ : 

  • آموزش مرتب کردن خودکار لیست توسط Vue.js بصورت حروف الفبایی بعد از درج یک فیلد جدید بدون نیاز به رفرش مرورگر
  • آموزش خالی کردن فیلد های فرم به محض افزودن یک آیتم برای لیست مخاطبین با استفاده از دستورات Vue.js 

جلسه ۲۹ : 

  • آموزش ایجاد متد جستجو بین آیتم های لیست مخاطبین با وارد کردن عبارت در input جستجو
  • ایجاد watcher برای جستجو بین فیلدهای Name 

جلسه ۳۰ : 

  • آموزش کدنویسی جستجوی پیشرفته برای سرچ بین فیلد های دیگر مثل email , phone و ...
  • آموزش پر کردن لیست از نتایج جستجو شده و بازگشت اطلاعات قبلی بعد از پاکسازی فیلد جستجو
  • جستجو بصورت آنی با تایپ هر حرف یا حذف آن ، در فیلد input جستجو 

در بالا خلاصه ای از سرفصل های دو دوره ی آموزشی فوق العاده برای شما آورده شده است که میتوانید با مطالعه سرفصل ها ، قبل از تهیه این دوره دید کلی نسبت به این دوره داشته باشید 

 

دمو دوره ی آموزش پروژه محور ساخت دفترچه تلفن بصورت SPA با Vuejs و لاراول 

دوره ی آموزش پروژه محور ویو جی اس و لاراول و bulma

سیستم ثبت نام و ورود کاربران با لاراول نسخه ی 6

سیستم ثبت نام و ورود کاربران با لاراول نسخه ی 6 https://avasam.ir/post/137

سیستم ثبت نام و ورود کاربران با لاراول نسخه ی 6 

 

در این آموزش به سیستم احراز هویت لاراول نسخه ی ۶ بپردازیم . سیستمی که در آن عمل ثبت نام کاربران ، ورود و خروج و بازیابی پسورد ساخته میشود . 

قبل از اینکه این آموزش را شروع کنید مطمئن شوید یک نسخه ی جدید از لاراول را نصب کرده اید و سرور آنرا استارت کرده اید با php artisan serve و سپس در localhost:۸۰۰۰ پروژه ی جدید لاراول خود را مشاهده میکنید . 

در نسخه ی ۶ لاراول سیستم احراز هویت کاربران به داخل یک پکیج دیگری به نام Laravel/UI انتقال داده شده است و برای استفاده از سیستم احراز هویت باید ابتدا این پکیج را نصب کنید . 

از طریق دستورات زیر در ترمینال یا cmd میتوانید این بسته را نصب کنید :‌

نکته : در ترمینال یا cmd حتما به محل نصب پروژه ی خود بروید .

composer require laravel/ui

بعد از زدن این دستور اینتر را بزنید و سپس نتیجه ی خروجی در ترمینال شما باید به شکل زیر باشد 

Using version ^1.0 for laravel/ui
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing laravel/ui (v1.0.1): Downloading (100%)
Writing lock file
[...]

سپس میتوانید دستور زیر را در ترمینال وارد کنید 

php artisan ui vue --auth

و خروجی این دستور نیز طبق زیر خواهد بود 

Vue scaffolding installed successfully.
Please run "npm install && npm run dev" to compile your fresh scaffolding.
Authentication scaffolding generated successfull

شما باید این دستورات را در ترمینال وارد کنید تا یک سیستم احراز هویت کامل به همراه رابط کاربری آن ساخته شود که شامل بخش های ثب نام ، ورود و بازیابی رمز عبور است  . 

view ها و route  های احراز هویت باید به پروژه ی لاراول شما اضافه شده باشد . همچنین یک کنترلر به نام HomeController باید ساخته شود که احراز هویت را کنترل کند . 

دستور php artisan ui vue --auth ویوهای ضروری را میسازد و در مسیر resources/views/auth قرار میدهد . 

دستور ui هم مسیر resources/views/layouts را میسازد که قالب پایه ی پروژه را بر مبنای فریمورک سی اس اس  به نام بوت استرپ ، میسازد . 

خب حالا که این سیستم بصورت خودکار ساخته شده کاربر میتواند ثبت نام کند ،‌سپس وارد سیستم شود و خارج شود ، اگر رمز خود را فراموش کرد بازیابی رمز را بزند . 

کنترلر مربوط به احراز هویت که ساخته شده است منطق ثبت نام و احراز هویت کاربران را برای ما انجام میدهد زمانی که یک کاربر جدید ثبت نام میکند کاربر جدیدی را در پایگاه داده نیز میسازد . خب شما عملا هیچ کار خاصی برای سیستم احراز هویت و ثبت نام نباید انجام بدهید و تنها کاری که باید انجام بگیرد کاستوم کردن یا اختصاصی کردن آن است که بحث دیگریست . 

ثبت نام کاربران با لاراول 

حالا اگر در مرورگر خود بزنید http://localhost:۸۰۰۰/register باید سیستم ثبت نام کاربر برای شما بالا بیاد . 

آموزش ساخت ثبت نام با لاراول 6

ورود کاربران با لاراول

حالا اگر در مرورگر بزنید : localhost:۸۰۰۰/login تصویر زیر باید برای شما نمایش داده شود 

آموزش ساخت سیستم ورود کاربران در لاراول ۶

فراموشی رمز عبور کاربران در لاراول

و در آدرس http://localhost:۸۰۰۰/password/reset باید شکل زیر باشد :‌

آموزش ساخت سیستم ثبت نام و ورود با لاراول ۶

همانطور که مشاهده میکنید view ها ساخته شده هیچ گونه استایلی ندارند . شما میتوانید view ها را با استفاده از نصب وابستگی های مورد نیاز دستکاری کنید 

$ npm install
$ npm run dev

اگر شما خطای Unhandled rejection Error: EACCES: permission denied  را دارید شما باید دسترسی لازم را با استفاده از دستور sudo بدهید : 

$ sudo npm install 
$ sudo npm run dev

حالا رابط کاربری و استایل view ها بهتر شد تصویر زیر را ببینید :‌

آموزش ساخت سیستم ثبت نام و ورود کاربران با لاراول

vدر این سیستم اگر شما ثبت نام کنید بصورت خودکار لاگین میشوید و به صفحه ی اصلی منتقل میشوید همان مسیر /home که در کنترلر HomeController وجود دارد . 

سیستم ثبت نام و ورود با لاراول

برای دیدن route های ایجاد شده به مسیر routes/web.php بروید محتویات این فایل باید شکل زیر باشد :‌

<?php

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

در کد های بالا متد Auth::routes() را مشاهده میکنید این متد شامل تمام route های مورد نیاز مثل login, registration, logout و password reset است .

این متد زمانی به فایل web.php اضافه شد که شما دستورات نصب و راه اندازی سیستم auth لاراول را در ابتدای این مقاله وارد کردید . 

 

LoginController ،  RegisterController و ResetPasswordController در لاراول 

 

لاراول سه کنترلر آماده میکند که نام آنها LoginController, RegisterController و ResetPasswordController است . اینها کنترلرهای اصلی برای ثبت نام ، ورود و بازیابی پسورد هستند که شما میتوانید این کنترلرها را در مسیر app/Http/Controllers/Auth پیدا کنید و آنها را شخصی سازی کنید . 

 

چطور بخش هایی از سایت را برای کاربران نمایش دهید ( محدودسازی بخشی سایت فقط برای اعضا ) 

 

یکی از دلایل اصلی که سیستم ثبت نام و ورود در سایت ها پیاده سازی میشود این است که بخشی از وب سایت فقط برای کاربران وارد شده نمایش داده شود . در لاراول نیز شما میتوانید route های خود را محدودسازی کنید تا این مسیرها فقط برای کاربران قابل نمایش باشد نه همه 

برای این کار در لاراول شما باید از middelware ها کمک بگیرید . 

 

لاراول برای احراز هویت middleware دارد به نام auth که در مسیر Illuminate\Auth\Middleware\Authenticate قرار گرفته است . همچنین در سیستم HTTP هسته ی پروژه نیز ثبت شده است . 

شما میتوانید به راحتی از آن استفاده کنید تا هر بخشی که دوست دارید فقط به کاربرانی که وارد سیستم شده اند نمایش داده شود نه بقیه ...

خب بیایید بررسی کنیم که صفحه ی اصلی چطور محافظت شده است و طبق این مثال باقی قسمت ها را نیز محافظت سازی کنیم . 

فایل app/Http/Controllers/HomeController.php را باز کنید محتویات این فایل باید مثل زیر باشد : 

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth');
    }
    public function index()
    {
        return view('home');
    }
}

در کدهای بالا در متد __construct شما میبینید که middleware فراخوانی شده است و مقدار auth به معنای اینکه ما middleware مربوط به auth را نیاز داریم ارسال شده است .

middleware ها میتوانند درون کنترلر یا در route ها ضدا زده شوند . خب حالا فایل routes/web.php را باز کنید و route مربوط به /home را به شکل زیر بروزرسانی کنید : 

Route::get('/home', 'HomeController@index')->name('home')->middleware('auth');

 

نتیجه گیری :‌

 

خب در این آموزش با نحوه ی پیاده سازی سیستم auth لاراول آشنا شدید سیستمی که بصورت خودکار تمام چیزهایی که برای ثبت نام ، ورود و فراموشی رمز عبور کاربران نیاز است . 

شما میتوانید این سیستم را کاملا شخصی سازی کنید و هر چیزی که نیاز دارد به آن اضافه کنید یا بخش هایی را ویرایش کنید . 

یا شما میتوانید کلا از این سیستم استفاده نکنید چون این سیستم چیزی نیست جز یک سری کدهای آماده نوشته شده که آنها را خودتان هم میتوانید بنویسید ولی باید کمی زحمت بیشتری بکشید . 

ضمنا با استفاده از این پکیج استانداردهای مورد نیاز را درک میکنید و اگر بخواهید سیستم اختصاصی احراز هویت بنویسید حداقل الان میدونید باید چیکار کنید ! 

خب اگر قبلا با لاراول کار کرده باشید میبینید که سیستم auth در نسخه ی ۶ لاراول کمی تفاوت داشت :

 

  • در نسخه ی 6 لاراول route ها و view ها در داخل پکیج laravel/ui قرار گرفته است که باید از طریق composer نصب کنید 
  • دستور php artisan ui vue --auth با دستور php artisan make:auth جایگزین شده است 

 

اتمام مقاله 

8 راه سریع برای index صفحات شما توسط گوگل

8 راه سریع برای index صفحات شما توسط گوگلhttps://avasam.ir/post/138

تصور کنید شما سایتی برای خود یا یکی از مشتریان خود ساختید . اگر گوگل صفحات سایت شما را ایندکس نکند احتمال اینکه از جستجو کردن کسی سایت شما را پیدا کند صفر درصد است و این یعنی فاجعه برای یک وب سایت . 

در این مقاله قصد داریم به شما آموزش دهیم که چطور سریعا صفحات سایت خود را در گوگل ایندکس کنید . 

 

ایندکس کردن صفحات در گوگل (google index) 

ایندکس کردن صفحات توسط گوگل بطور خلاصه با روش های زیر انجام میگیرد : 

  • Crawling
  • Indexing
  • Ranking

در این لینک شما میتوانید ببینید که جستجوگر گوگل چطور کار میکند و چطور صفحات را گزینش میکند . 

ما در این مقاله قصد داریم روی این مسئله کار کنیم که چطور ربات گوگل صفحات را بیشتری را در مدت زمان سریع از سایت شما ایندکس کند . 

 

راه 1 - نحوه ی بررسی ایندکس بودن صفحات توسط گوگل ( لیست صفحات index شده سایت شما در گوگل )

قبل از هر چیزی شما باید بدانید  indexation rate  سایت شما چطور است . 

برای این کار ابتدا وارد google search console شوید و از بخش Index بخش Coverage را انتخاب کنید ، باید مشابه تصویر زیر باشد.

آموزش ایندکس کردن صفحات در گوگل - سئو

اگر شما در این بخش error میبینید یا تعداد زیاد صفحاتی که index نشده اند یکی از اتفاقات زیر در سایت شما رخ داده است : 

  • فایل sitemap.xml شما درست نیست یا url هایی در آن است که قابل index شدن نیست ( بعنوان مثال صفحاتی که NOINDEX هستند یا توسط robots.txt مسدود شده اند یا اینکه برای دیدن آن url ها باید کاربران وارد شده باشند ... )
  • سایت شما دارای صفحات زیاد کیفیت پایین یا تکراری است که گوگل أنها را بی ارزش میداند .
  • سایت شما authority کافی ندارد تا تمام صفحات را پردازش کند .

 

شما میتوانید مشکلات را بصورت کامل در جدول زیرین همین بخش مشاهده کنید . تصویر زیر را ببینید 

آموزش ایندکس کردن صفحات در جستجوی گوگل - آموزش نمایش صفحات سایت در جستجوگر گوگل

 

چطور صفحات شما در گوگل ایندکس قرار بگیرد 

من از کلیشه بدم میاد ولی برای اینکه توجه گوگل را به سمت سایتتون جلب کنید باید حتما تجربه ی کاربری خوبی ایجاد کنید ( UX ) .

برای اینکه این نکات برای سایت شما مفید باشد حتما راهنمای گوگل در این باره را مطالعه کنید . 

با استفاده از این تکنیک ها شما میتوانید indexation rate یا نرخ ایندکس شدن صغحات خود را بهبود ببخشید . 

 

1 - استفاده از URL inspection برای ارسال درخواست indexing یا ایندکس کردن لینک ها

  در کنسول جستجوی گوگل وارد شوید و سپس به بخش url inspection بروید . شما در این بخش میتوانید قابل دسترس بودن لینک خاصی توسط گوگل را بررسی کنید سپس میتوانید یک لینک خاص را ثبت کنید تا توسط گوگل index شود البته index شدن یک لینک در این بخش ممکن است زمانی طول بکشد . 

طبق تصاویر زیر عمل کنید 

- ابتدا روی url inspection کلیک کنید 

آموزش index کردن صفحات در گوگل

- سپس روی بخش سرچ در بالای صفحه ی لینک مورد نظر را تایپ کنید 

آموزش ثبت لینک در گوگل

- بعد از اینکه لینک خود را وارد کردید و enter زدید گوگل شروع میکند به بررسی اینکه این لینک قبلا index شده است یا نه . 

آموزش ثبت و index کردن صفحات سایت در گوگل

- سپس اگر لینک وارد شده توسط گوگل index شده باشد با تیک سبز رنگ به شما اعلام میکند که این لینک قبلا در گوگل index شده است ولی اگر ثبت نشده باشد به شما اعلام میکند که URL is not on Google یعنی لینک مورد نظر شما توسط گوگل ثبت نشده است . 

- برای ثبت کردن یا index کردن یک لینک در گوگل ابتدا میتوانید live یا قابل دسترس بودن آن لینک توسط گوگل را بررسی کنید . کافیست روی دکمه ی TEST LIVE URL را کلیک کنید 

آموزش index کردن یا ثبت لینک در گوگل

سپس کنسول شروع میکند به بررسی اینکه ایا لینک وارد شده توسط گوگل قابل شناسایی است یا نه 

آموزش index کردن صفحات در گوگل - آموزش ثبت صفحات در گوگل

- بعد از تست شدن لینک وارد شده به شما اعلام میشود که لینک روی دستگاه موبایل و دستگاه های دسکتاپ قابل دسترس است و میتواند توسط گوگل INDEX شود .  سپس برای INDEX کردن صفحه روی گزینه ی GOOGLE INDEX طبق تصویر زیر کلیک کنید . 

آموزش ثبت کردن لینک در گوگل - آموزش INDEX  شدن در گوگل

و بعد صفحه ی زیر باز میشود و به شما اعلام میکند که لینک شما در گوگل ثبت نشده است برای درخواست ثبت صفحه یا لینک مورد نظر باید روی گزینه ی REQUEST INDEXING طبق تصویر زیر کلیک کنید 

آموزش ثبت کردن لینک در گوگل - آموزش INDEX کردن مطالب در گوگل

- سپس کنسول گوگل شروع میکند به ثبت کردن لینک و سپس پیام زیر را نمایش میدهد مبنی بر اینکه درخواست شما برای INDEX کردن این لینک ثبت شد و بعد روی GOT IT  کلیک کنید 

آموزش ثبت سایت در گوگل - سئو برای INDEX شدن سایت

به همین سادگی میتوانید یک به یک لینک های خود را در گوگل ثبت کنید البته وقتی sitemap  باشد تمام لینک ها بصورت خودکار از درون sitemap فراخوانی میشوند . 

 

راه 2 - استفاده از لینک های درونی 

خزنده های موتور جستجویی مثل گوگل روی لینک های درون سایت شما کلیک میکند و بین لینک های HTML میخزد ! 

آموزش سئو و index کردن سایت

 

راه 3 - صفحات با کیفیت پایین را برای index گوگل بلاک کنید 

 

با این وجود که سنگ بنای یک وب سایت با کیفیت ، محتوای آن است در همین حال محتوای بد یا بی کیفیت نیز سایت را به نابودی می کشاند .

هر چه بیشتر تعداد مطالب بی کیفیت در سایت شما وجود داشته باشد همانقدر ، بازدید خزنده های گوگل ، تعداد index های شما و رتبه ی سایت شما کاهش خواهد داشت . 

بنابراین پاکسازی یا بلاک کردن صفحات کم کیفیت یا بد ، همانند هرس کردن یک درخت است . 

صفحاتی که احساس میکنید محتوای خوب و به درد بخوری ندارند باید کارهای زیر را برای آنها انجام دهید :‌

  1. به حالت NOINDEX در بیایند . در این صورت کاربران عادی صفحه را میبینند ولی از دید موتورهای جستجو مخفی میشود تا کیفیت و محتوای کم یا بد تاثیری روی رتبه ی سایت شما نداشته باشد . ( مثلا صفحات نمایش پیام تشکر ، صفحات پرداخت بانکی و اینجور چیزها که فاقد محتوا خاصی هستند ) .
  2. خزنده را  از طریق  Robots.txt  بلاک کنید . زمانی که لیستی از صفحات برای مخاطبین شما ارزشمند هستند ولی برای دید موتورهای جستجو نه !‌ ( مانند مطبوعات ، آرشیو و ... ) . 
  3. ریدایرکت 301 زمانی که صفحه هیچ ارزشی برای کاربران یا برای موتورهای جستجوگر ندارد (ممکن است حذف شده باشد ) اما هنوز لینک و ترفیکی برای آن وجود دارد ( برای مثال مطالب قدیمی وبلاگ که زمانی نوشته بودید و در اینترنت لینکش هست و کاربران با کلیکش به سایت شما روانه میشن ) . 
  4. صفحه ی 404  برای صفحاتی که وجود ندارند یا حذف شده اند . زمانی که هیچ پاسخی درباره ی یک لینک در سایت خود ندارید کافیست صفحه ی 404 را نمایش دهید . برای این ورودی مطمئن باشید که هیچ ترافیک خاصی وجود ندارد .

 

راه 4 -  اضافه کردن صفحات و لینک ها به Sitemap

 sitemap یک فایل xml است که به خزنده ی موتور جستجو میگوید در سایت شما کدام لینک ها و صفحات مهم هستند . همانطور که از اسمش پیداست نقشه ی سایت شما را در اختیار موتور جستجوگر قرار میدهد . 

وجود لینک ها درون sitemap تضمین کننده ی این نیست که حتما لینک توسط موتور های جستجو  index میشود ولی نبودن لینک ها در sitemap حتما روی index نشدن آنها تاثیر دارد . 

اگر سایت شما روی WordPress است به راحتی میتوانید sitemap سایت خود را با استفاده از پلاگین ها انجام دهید و اگر سایت شما اختصاصی است میتوانید با کدنویسی مقالات یا محصولات یا هر چیزی که مهم است را اضافه کنید . 

زمانی که شما sitemap سایت خود را ساختید میتوانید به کنسول جستجوی گوگل بروید و آنرا به گوگل معرفی کنید . 

آموزش اضافه کردن sitemap.xml به کنسول جستجوی گوگل

همانطور که در تصویر بالا میبینید ابتدا بخش Sitemaps را کلیک کنید سپس در بخش Add a new sitemap  آدرس sitemap خود را وارد کنید و سپس دکمه ی SUBMIT را بزنید . 

اگر خطایی وجود نداشته باشد در لیست Submited sitemaps  میتوانید سایت مپ خود را بصورت Success مشاهده کنید . جزئیات دیگر هم آنجا موجود است و میتوانید با کلیک روی آن مشاهده کنید . 

یکبار دیگر بررسی کنید تا مطمئن شوید لینک هایی که میخواهید index شود درون sitemap قرار گرفته است و صد در صد مطمئن شوید لینک هایی که نمیخواهید index شوند درون sitemap وجود نداشته باشند .

 

راه 5 -  اشتراک گذاری صفحات در توئیتر (twitter) 

گوگل یک شبکه ی قدرتمند است که خزنده های گوگل هم ارتباط خوبی با آن دارند و دائما در حال خزیدن در توئیتر هستند . 

تاثیر توئیتر در index شدن سایت و سئو

اشتراک گذاری در شبکه های اجتماعی شاید تاثیر مستقیم روی indexing  سایت شما نداشته باشند ولی به خزنده ی گوگل از انتشار مطلب جدید و مهم در سایت شما مطلع میشود که قرار است index شود . 

 

راه 6 -  صفحاتتان را در سایت های ترافیک بالا به اشتراک بگذارید 

سایت هایی مثل Reddit و Quora سایت های محبوبی هستند که به شما اجازه میدهند لینک بگذارید . 

میتوانید برای تبلیغات صفحاتی که اخیرا منتشر شده از Quora استفاده کنید . این کار علاوه بر اینکه ترافیک به سایت شما جذب میکند بلکه به راحت شدن indexing صفحات شما کمک میکند . 

اشتراک گذاری در Quora و تاثیر آن بر روی indexing و سئو سایت

اگر احساس تنبلی میکنید یا وقت کافی برای اشتراک گذاری مطالب در جامعه های مجازی را ندارید حتما کسی را پیدا کنید این کار را انجام دهد 

چون یکی از کلید های موفقیت سایت شماست . 

راه 7 -  لینک های خروجی برای صفحه ی خود تامین کنید  

همانطور که بالاتر گفتیم خزنده ی گوگل روی لینک های سایت ها کلیک میکند و آنها را تحلیل میکند .

لینک دادن به سایت های دیگر درسته که بعنوان یک فاکتور مهم در رتبه بندی و افزایش ترافیک سایت مقصد نیست ولی روی indexing سایت مقصد تاثیر زیادی دارد . 

شما میتوانید به شکل های زیر برای خود لینک ورودی بسازید :‌

  • ارسال پست بعنوان مهمان در سایت های مرتبط و معتبر.
  • وبلاگ ها یا وب سایت های مرتبط با موضوع سایت خودتان را پیدا کنید و درخواست تبلیغات به آنها بدهید . 

 

راه 8 - روی سایتتان Ping بزنید

سایت هایی مثل Ping-O-Matic به موتورهای جستجو یک ping ارسال میکنند و اعلام میکنند که سایت یا وبلاگ شما بروزرسانی شده است . 

ping زدن به موتورهای جستجو موقع بروزرسانی سایت - اعلام آپدیت سایت به موتورهای جستجو

راستش ، این بهترین روش نیست - اما سریع ، رایگان و قابل استفاده است

 

تمام :) 


این ۸ چیز را باید همه بدنامه نویسان بدانند

 

این ۸ چیر رو باید همه برنامه نویسا بدونن !https://avasam.ir/post/153

نکاتی که برنامه نویسان باید بدانند 

  1. در برنامه نویسی هیچ چیز آسان نمیشود ، شما باهوش تر میشوید
  2. برنامه نویسی را باید هر روز یاد بگیرید
  3. بعضی وقت ها برنامه نویسی شما را قورت میدهد 
  4. گاهی وقت ها احساس میکنید نمیدانید دارید چیکار میکنید
  5. بعضی وقت ها کلافه میشوید اما استرس را کنترل کنید
  6. مهارت ارتباط برقرار کردن مهم تر از مهارت کدنویسی است 
  7. یا باید احمق ترین فرد اتاق باشید یا اتاقتان را عوض کنید تا جایی بروید که آنجا احمق ترین باشید
  8. یک محیط کاری خوب بهتر از حقوق بالاست 

 

1 در برنامه نویسی هیچ چیز آسان نمیشود ، شما باهوش تر میشوید . 

برنامه نویسی یک فعالیت ساده نیست. نیازها در وسط پروژه تغییر می کند. فناوری ها به سرعت و بی رحمانه پیشرفت می کند. مشتریان سریع قضاوت می کنند ولی آهسته توضیح میدهند. برنامه نویسی آسان تر نمی شود بلکه برنامه نویسان باهوش تر می شوند.

اولین باری که به یک باگ برخورد میکنید شما تا وقتی که آنرا حل نکنید خود را شکست خورده تلقی میکنید . بعد از حل کردن این معما شما احساس خدایی میکنید . 

اصل ترفند این است :  سری بعدی وقتی به آن باگ یا مشابه آن برخورد کردید سریعا حل میکنیدش چون قبلا پیچ و خم راه را رفتید . احساس میکنید مشکل ساده ای بود نه اینطور نیست راحت نبود شما باهوش تر شدید ! 

 

2 - برنامه نویسی را باید هر روز یاد بگیرید

نکات آموزش برنامه نویسی سریع 

در دنیای برنامه نویسی همه چیز در حال اپدیت شدن و همه چیز در حال منسوخ شدن هستند . اگر در حال یادگیری نباشید شما هم به همراه دانش قبلی خود منسوخ خواهید شد :) برای اینکه دیگر برنامه نویسان از ما عقب نباشند این فناوری و این زمینه ی شغلی یا هر چیزی با سرعت جت در حال پیشرفته !!!

دشوارترین نکته در این مورد این است که یاد بگیرید چطور یاد بگیرید . 

سالها طول می کشد تا بتوانید در یک زبان برنامه نویسی مهارت داشته باشید و سالها بیشتر طول میکشد تا بتوانید آنچه را که می دانید بشناسید و آنچه را که لازم ندارید رها کنید. نگران نباشید شما موفق میشوید مثل افراد دیگر که شدن ، فقط وقت بگذارید.

 

3 - بعضی وقت ها برنامه نویسی شما را قورت میدهد 

نکاتی برای یادگیری برنامه نویسی - یادگیری سریع برنامه نویسی

برنامه نویسی سخت است . ما در دنیایی کار میکنیم که قوانین بین المللی هم حتی ندارد . دنیایی که در ان وقتی مشتری از ما ماشین میخواهد میتواند بجای ماشین هواپیما هم بخواهد و انتظار هم دارد که طی یک هفته تحویل دهیم ! 

زمینه ی کاری ما طوری است که تقریبا همه روزه عوض میشود و انتظار میرود که همیشه سرحال باشید و کارتان را بکنید 

شما اگر احساس عدم تعادل کردید باید جوری به آن عادت کنید . توجه کنید که همه ی ما این احساس را داریم . ما نمیتوانیم همه چیز را درآن واحد حل و فصل کنیم .

همه ی ما گاهی احساس سردرگمی و گم شدن در مسائل پیدا میکنیم اما مشکلی نیست . رو به جلو حرکت کنید همه چیز خوب خواهد شد . 

 

4 - گاهی وقت ها احساس میکنید نمیدانید دارید چیکار میکنید

نکات آموزش برنامه نویسی

من برای ده سال است که برنامه نویسی حرفه ای انجام میدم ( حتما میگید ایول ) . ابتدای کار من ممکن بود چهار هفته کار کنم و اصلا ندونم که دقیقا دارم چیکار میکنم . از این چهار هفته ها در اوایل اتفاق میوفتاد سرانجام متوجه شدم که همیشه این حس وجود دارد . 

وقتی برای اولین بار این حس را تجربه میکنید شاید احساس کمبود کنید . اما با این احساس شما میتوانید از شغلتان لذت ببرید ؟ قطعا نه و شما را سریعا دلزده میکند . 

پس سقوط نکنید . سعی کنید دیدگاهتان را به این مسئله عوض کنید به این فکر کنید که مسئله ساده است ولی شما هنوز راه حل آنرا فرا نگرفته اید . بعضی برنامه نویس ها پازل را در قلب شان حل میکنند . یاد بگیرید که معماهای برنامه نویسی را دوست بدارید و دنبال کسب حرفه و مهارت بیشتر باشید . 

 

5 - بعضی وقت ها کلافه میشوید اما استرس را کنترل کنید

آموزش نکات شروع برنامه نویسی

استرس برای همه ما پیش می آید. می توانید سعی کنید آن را دفع کنید یا آن را به تاخیر بیاندازید ، اما سرانجام از راه می رسد و کافئین در این مواقع خیلی کمک کننده است. اینکه چگونه به فشارهای شغلی خود واکنش نشان دهید مشخص می کند که این زمینه ی شغلی را چقدر دوست دارید . 

کار خود را دو چندان نکنید! کوهی از کارهای انجام شده را مقابل خود تصور نکنید و نگویید "اگر من فقط کمی سخت تر کار کنم ، همه چیز درست میشود." این راه منجر به فرسودگی شما می شود.

شغل خود را ادامه دهید در همین حال سعی کنید از زندگی کردن هم لذت ببرید اینطوری مسائل و مشکلات شما حل میشود . امتحان کنید !

 

6 - مهارت ارتباط برقرار کردن مهم تر از مهارت کدنویسی است 

آموزش مهارت های برنامه نویسی - شروع برنامه نویسی

شما میتوانید هر زبان برنامه نویسی را یاد بگیرید ، میتوانید هر ابزار و سیستم عاملی را یاد بگیرید ، میتوانید هر فریمورک و تکنولوژی را یاد بگیرید اما اگر قدرت ارتباطات شما ضعیف باشد عملا آن تخصص ها به هیچ دردی نخواهند خورد چون شما نمیتوانید خود را به دیگران تعریف کنید . 

مشتری ها و کارفرماهای ما نمیتوانند مسائل فنی که ما بلد هستیم را درک کنند ما فقط باید این کارها را انجام دهیم ولی باید بتوانیم آنها را به یک فرد غیر متخصص هم توضیح دهیم . 

اگر ارتباطات قوی ندارید نیاز به تمرین و تجربه در این زمینه دارید . چیزی نیست که نتوانید آنرا بدست بیاورید . 

به خودتان فرصت برقرار کردن ارتباط با دیگران را بدهید بهترین برنامه نویسان جهان در اغلب موارد ارتباطات خوبی با دیگران دارند زیرا به مردم این اجازه را میدهند که کار آنها را درک کنند . 

 

7 - یا باید احمق ترین فرد اتاق باشید یا اتاقتان را عوض کنید تا جایی بروید که آنجا احمق ترین باشید

آموزش برنامه نویسی - نکات آموزشی برنامه نویسی

اگر احساس میکنید در اتاقی هستید که از همه بیشتر میدانید سریعا انرا عوض کنید چون آنجا پیشرفتی نخواهید کرد . 

خیلی از برنامه نویسان یک شغل پیدا میکنند یا مسیری پیش میگیرند که با دانسته های قبلی آنها قابل انجام است پس دنبال یادگیری چیزهای جدید نمی روند یا اصلاح خودمانی راحت طلب هستند .

این افراد چون در کار قدیمی خوب تبحر دارند مطمئنا از کار قبلی خود درآمد کسب خواهند کرد ولی در همان جایی که هستند باقی خواهند ماند و پیشرفت نخواهند کرد . 

پس اگر در یک اتاقی هستید که احساس میکنید هیچکس از شما بیشتر نمیداند یا از کسی چیز جدیدی یاد نمیگیرید آنجا را ترک کنید و به اتاقی بروید که آنجا یک احمق حساب شوید . 

 

8 - یک محیط کاری خوب بهتر از حقوق بالاست 

همه چیز پول نیست اگر با شغلتان راحت نیستید یا استرس بیش از اندازه به شما وارد میکند آن محیط مناسب شما نیست و سریعا جای خود ا عوض کنید . 

من میدانم که ترک یک شرکت یا تغییر شغلی که حقوقتان از آن شرکت تامین میشود کار ساده ای نیست و ممکن است خودتان و خانواده تان متضرر شود ولی اگر نمیتوانید یک شغل را تغییر دهید حداقل کاری کنید آنرا دوست داشته باشید و همانجا پیشرفت کنید . 

با رئیس خود درباره ی استرس های خود صحبت کنید شاید بخش جدید یا کار جدیدی برای شما داشته باشد . مشکل خود را با هم تیمی های خود در میان بگذارید شاید هم تیمی های شما یا همکاران شما راه چاره را بدانند و این را هم بدانید که صاحبان کسب و کار ها حاضر هستند خیلی کارها را برای کارمندان خود انجام دهند  تا استرس انها کم شده و خلاقیت انها افزایش پیدا کند . 

برنامه نویسی یک کار ثابت است و نیاز به فعالیت بدنی ندارد پس مراقب اضافه وزن و سلامتی خود هم باشید پول را میتوان پیدا کرد ولی سلامتی را دوباره نه ! 

 

اما در آخر این مطلب به یاد داشته باشید که هر چند برنامه نویسی شغل سخت و گیج کننده ای است ولی چیزی نیست که همه بتوانند از پس آن بر بیایند اگر برنامه نویس هستید به شما تبریک میگم چون شما یک ذهن بسیار باهوش و خلاق دارید انعطاف پذیری بالایی دارید و کاری را انجام میدهید که به نظر خیلی ها بسیار سخت و جادویی است . 

مطمئنا کارهای سخت پول خوبی هم دارند و به همین خاطر است که بیشتر پولدارهای دنیا برنامه نویس هستند . 

مفاهیم موتور جستجو و آموزش ساخت موتور جستجو با PHP

مفاهیم موتور جستجو و آموزش ساخت موتور جستجو با PHPhttps://avasam.ir/post/144

موتور های جستجو چه هستند و چگونه کار میکنند 

موتورهای جستجوگر امروزه بخش جدا ناپذیر از اینترنت هستند . در این مقاله میخواهیم موتورهای جستجوگر و مفاهیم آنرا بصورت کامل پوشش دهیم . 

موتور های جستجوگر به ابزار بسیار کاربردی در زمینه اینترنت تبدیل شده اند  و این ابزارها برای برنامه نویسان ، توسعه دهندگان ، مدیر شرکت ها ، کسب و کارهای آنلاین و دیگر کاربران اینترنتی بسیار کمک کننده و مفید هستند . 

با استفاده از موتور جستجوگر ما میتوانیم اطلاعاتی درباره ی موضوع خاص را به راحتی بدست بیاوریم . 

ما در این مقاله قصد داریم علاوه بر بررسی تخصصی موتور جستجوگر و مفاهیم آن ، به شما آموزش بدیم چطور موتور جستجوی شخصی خودتان را با PHP و MySQL بسازید ! تعجب نکنید شما هم میتوانید گوگل اولش انقدر قدرتمند نبود طی سالهای درازی اینطوری شده و تبدیل شده به یک سیستم عالی !‌ولی شما هم میتوانید از یه سیستم ساده ی موتور جستجو شروع کنید و آنرا هر روز بهتر از دیروز بکنید . 

البته در این مقاله ما قصد نداریم چیزی به شما یاد بدهیم که جایگزینی برای گوگل یا یاهو بسازید چون طبیعتا این امر فعلا امکان پذیر نیست ولی شما با این آموزش به مفاهیم موتورهای جستجو و طرز عمل آنها مسلط میشوید و یاد میگیرید چطور با PHP یک موتور جستجو بسازید . 

 

موتور جستجو چیست ؟ 

بصورت کلی موتور جستجو یک ابزاری در بستر اینترنت است که به کاربران کمک میکند اطلاعات مختلف را از بین میلیون ها سایت به راحتی پیدا کنند . موتور جستجوهای پرکاربرد در جهان عبارتند از Google, Yahoo!, MSN, Bing , Ask و غیره ...

موتورهای جستجو مثل یک برنامه ی کامپیوتری هستند که در بین اسناد زیادی که دارید بین یک کلمه ی خاصی میگردند و آن اسناد را برای شما طبقه بندی میکنند . 

به هر حال بصورت عامیانه موتور جستجو چیزی است مثل Google , Bing , Yahoo و غیره ...

موتورهای جستجوگر ابزار خودکاری مثل ربات ها و خزنده ها را دارند که به سرتاسر اینترنت میفرستند و آنها وقتی به یک سایتی وارد میشوند تمام آن سایت را تحلیل و بررسی میکنند بعد از جمع آوری اطلاعات وارد لینک های آنها میشوند و بعد از ورود به صفحه ی دیگر یا سایت دیگر دوباره آنرا بررسی میکنند و بعد روی لینک های روی آن صفحه کلیک میکنند و دوباره به مقصد بعدی کوچ میکنند . همینطور کل اینترنت را گشته و اطلاعات را جمع آوری میکنند و به پایگاه های داده موتور انتقال میدهند . 

سپس این اطلاعات جمع بندی و طبقه بندی میشود ،‌ به این کار index کردن سایت ها میگویند . وقتی کاربر کلمه ی گرگ را جستجو میکند موتور جستجو در پایگاه داده خود میگردد و بین سایت هایی که این کلمه را ربات ها و خزنده ها جمع آوری کرده اند براساس رتبه ی آنها لیست میکند و به کاربر نمایش میدهد . 

 

موتور های جستجو چطور کار میکنند ؟‌

هر موتور جستجو یک الگوریتمی برای لیست کردن و نمایش اطلاعات طبقه بندی شده از سایت ها دارد. 

نتیجه ی جستجو در موتور های جستجو گر در یک لیستی به نام SERP که مخفف Search Engine Results Page است نمایش داده میشود . 

معمولا الگوریتم موتور های جستجوگر به دنبال کلمات کلیدی در بخش های مختلف سایت میگردد و آنها را مهم میداند مثلا عبارت هایی که در title صفحه یا درون محتوای یک صفحه یا کلمات کلیدی آن وجود دارد . 

سپس وب سایت ها در موتور جستجو Rank بندی یا رتبه بندی میشود که کدام سایت اول نمایش داده شود و سپس کدام سایت ها یعنی به ترتیب کیفیت و محتوای سایت ها بیشتر توجه میشود و  الگوریتم های موجود در موتورهای جستجوگر تقریبا همگی به کیفیت بالا اهمیت میدهند چون هر سایتی که کیفیت بالاتری داشته باشد بهتر است ابتدا دیده شود .

البته هر موتور جستجوگر الگوریتم خاص خودش را دارد مثلا یک وب سایتی ممکن است در گوگل در رتبه ی ۱ باشد ولی در موتور جستجوی یاهو در رتبه ی ۱۰ باشد و این بستگی دارد به الگوریتمی که پشت آن موتور است . 

الگوریتم های استفاده شده در موتور های جستجوگر تقریبا در حالت مخفی و سرّی  و دائما هم در حال بروزرسانی و بهبود هستند بنابراین صاحبان وب سایت ها باید مرتبا روی سئو سایت خود کار کنند تا الگوریتم های جدید سایت ها را بهتر بشناسد . 

اگر راز الگوریتم موتور جستجو فاش شود شرکت ها سعی میکنند آنرا دور بزنند و با ایجاد رتبه ی جعلی به جاهای بالاتری بروند که این باعث میشود موتور جستجو نتایج خوبی بدست نیاورد . گاهی نحوه ی کار کردن الگوریتم ها کشف میشود و اینجاست که خیلی ها سعی میکنند تقلب کنند و دقیقا بعد از این اتفاق توسعه دهندگان آن موتور جستجو الگوریتم را بروزرسانی میکنند و یک برچسب spam به آن سایت های متقلب میزنند و رتبه ی آنها به شدت کاهش پیدا میکند . 

موتورهای جستجو گر به سورس یک وب سایت مراجعه میکنند یعنی چیزی که موتور جستجوگر از یک سایت میبینید با چیزی که یک انسان میبیند متفاوت است . موتور جستجو متن ها را میخواند و برایش تصاویر و انیمیشن ها بی مفهوم است . 

به همین علت هم بود که سریعا بساط سایت هایی که کلا با فلش طراحی میشدند جمع شد چون انیمیشن ها و گرافیک فلش برای موتور نامفهوم بود و رتبه ی سایت هایی که با HTML و CSS ساخته شده بودند بسیار بهتر بود . 

در هر صورت اگر شیوه ای را اتخاذ کنیم که متن خالی توسط موتور ها قابل رویت نباشد به احتمال زیاد رتبه ای هم در موتور های جستجو نخواهیم داشت . 

 

موتورهای جستجوی وب 

در متن بالا که درباره ی موتورهای جستجو صحبت میکردیم اشاره ی کوتاهی هم به موتور جستجوی وب داشتیم . همانطور که بالا هم گفتیم این موتور ها یک خزنده به سمت سایت شما ارسال میکنند و این توانایی را دارد که محتوای وب سایت شما را به همراه کلمات کلیدی یک صفحه واکشی کند . یک برنامه ی دیگری به نام indexer وجود دارد اسنادی که خرنده آورده است را میخواند و دسته بندی میکند و به آنها رتبه میدهد . 

هر موتور جستجوگری بر اساس الگوریتم خاص خود این رتبه بندی را انجام میدهد . 

از آنجایی که سازندگان وب سایت ها میدانند که قرار است خزنده های موتور جستجو گر های مختلف به سایت آنها مراجعه کند پس شروع میکنند به بهینه کردن وضعیت سایت خود و آماده کردن آن برای خزنده های موتور جستجو که به این کار SEO یا بهینه سازی موتورهای جستجوگر گفته میشود . 

 

ویژگی موتورهای جستجو 

موتورهای جستجو بدون نظارت انسان کار میکنند . هر شخصی میتواند از آنها استفاده کند و برخی از موتورهای جستجو نیز دارای نقص های درونی هستند . 

اما اگر کسی بخواهد موتورهای جستجو و الگوریتم واقعی آن را دور بزند ممکن است موتور جستجو آنرا بعنوان spam بشناسد . 

موتورهای جستجو دارای انواع اطلاعات بصورت یکجا میباشد مانند : شماره تلفن ها ، جزوات و مقالات اموزشی ،‌ ویدیوها ، موسیقی ، روزنامه ها ، وضعیت آب و هوا و خیلی اطلاعات دیگر ...

موتورهای جستجو این قابلیت را دارند که انواع نیاز های کاربران را فراهم کنند . 

 

نکاتی که هنگام استفاده از موتور جستجوها باید رعایت کنید 

ما بعنوان یک جستجوگر باید یاد بگیریم که چطور عبارت دلخواهمان را به موتور جستجو بگوییم تا بهترین نتیجه را برای ما بیاورد . 

اپراتورهای جستجو به دو دسته ی اصلی تقسیم بندی میشوند :‌

  1. اپراتورهای Boolean
  2. اپراتورهای غیر Boolean

در اینجا منظور ما از اپراتور یک کلمه یا یک سمبلی است که تایپ میکنیم .اپراتور کلمه یا نمادی است که تایپ می کنیم. این راهنما را به موتور جستجو راهنمایی می کند تا بداند چه چیزی را جستجو کند. با استفاده از این اپراتورها می توانیم جستجوی خود را محدود یا گسترده تر کنیم ، بنابراین به ما کمک می کنیم تا وب سایت هایی را که برای شما مفید است پیدا کنیم.

اپراتورهای هر موتور جستجوگر ویژه ی خودش میباشد و باید نسبت به موتوری که استفاده میکنید اپراتور های انها را یاد بگیرید .

 

تکنیک های جستجوی Boolean

عبارت AND :

این عبارت به موتور جستجو گر میگوید یک عبارت یا عبارت دیگر اگر در محتوا بود به من نمایش بده . این راه کار باعث محدود شدن وب سایت ها و بهتره پیدا شدن نتیجه ی مورد نظر میشود مثلا اگر بخواهیم به موتور بگوییم گل و قرمز را برای ما پیدا کن یا گل و قرمز و آبی را پیدا کن باید رشته های زیر را جستجو کنیم :‌

  • گل AND قرمز
  • گل AND  فرمز AND آبی

در تصویر زیر من عبارت  گل AND قرمز AND آبی را در بخش تصاویر گوگل جستجو کردم نتیجه را ببینید :‌

تکنیک های جستجو در موتورهای جستجوگر - آموزش ساخت موتور جستجو

عبارت OR :

این عبارت به موتور جستجو میگوید هر چیزی که OR بین آنها قرار گرفت یکی از آنها را پیدا کن مثلا گل یا آسمان فرقی ندارد پس گل OR آسمان ممکن است در نتایج جستجو هم آسمان داشته باشد هم گل ! 

این مورد باعث زیاد شدن نتایج جستجو و سخت تر شدن پیدا کردن هدف اصلی میشود ولی بازه ی جستجو را گسترده میکند که کاربرد های خاص خود را دارد . 

برای مثال من در تصویر زیر کیبورد OR ساعت را جستجو کرده ام که هم نتایج ساعت و هم نتایج کیبورد را برای من آورده است . 

آموزش ساخت موتور جستجو

 

عبارت NOT :

این عبارت باعث حذف شدن یک کلمه خاص از نتایج جستجو میشود مثلا اگر ما به دنبال گوشی موبایل هستیم ولی نمیخواهیم مدل LG را نمایش دهد به راحتی مینویسیم  موبایل -ال جی . توجه کنید که این عبارت در دستورات جستجوی گوگل با علامت منفی یا - انجام میگیرد تصویر زیر را ببینید 

آموزش ساخت موتور جستجو - آموزش عملکرد موتور های جستجوگر

 

تکنیک های جستجوی Non-Boolean در موتور های جستجوگر 

عبارت + :‌ این درست مثل AND عمل میکند یعنی اگر در بین دو یا چند عبارت قرار گیرد همه ی آنها باید در نتیجه ی جستجو باشند مثلا گل + أبی + قرمز 

باز مثالی در تصویر زیر آماده کرده ایم ببینید . 

آموزش ساخت موتور جستجوگر - موتور های جستجو چطور کار میکنند

عبارت - :‌

این عبارت هم دقیقا مثل NOT عمل میکند که البته در مثال بالا در گوگل ما فقط توانستیم از - استفاده کنیم چون دستور گوگل همین است . 

عبارت "" :

هر چیزی که بین " " قرار بگیرد به موتور جستجو میگوید عینا همین را جستجو بکن و جستجوی شما را خاص میکند . برای مثال تصویر زیر را ببینید 

آموزش کار با موتور های جستجو - آموزش ساخت موتور جستجوگر

 

آموزش ساخت موتور جستجوی شخصی با Php و Mysql

شاید خیلی هیجان انگیز باشه که یه موتور جستجو بسازید هر چند ساده !‌ کلی مفاهیم یاد میگیرید و کلا دستتون میاد که موتور های جستجو چطور کار میکنند . 

ما قصد نداریم موتور جستجو گر حرفه ای بسازیم که در اندازه ی Yahoo یا Google باشه ما داریم تمرین میکنیم و حداقل یک موتور جستجو در حد موتور جستجوهای بومی که میتونیم بسازیم باهاش تفریح کنیم . 

پس شروع میکنیم و  با استفاده از ابزارهای اوپن سورس مثل PHP و MySQL این کار را انجام میدیم . 

خب از آنجایی که ما در این آموزش از زبان برنامه نویسی PHP استفاده خواهیم کرد طبیعتا شما باید با مفاهیم این زبان برنامه نویسی آشنا باشید و اگر آشنا نیستید اشکالی ندارد ما قبلا یک دوره ی آموزشی برای این زبان برگزار کردیم که از لینک زیر میتوانید تهیه کنید . 

دوره ی آموزش کامل زبان برنامه نویسی PHP به فارسی

همچنین اگر قصد دارید در زبان PHP تسلط شما بیشتر شود ما دو دوره ی پیشرفته دیگری هم برگزار کردیم که مطمئنا باعث ارتقای دانش و تخصص PHP در شما میشود و در تمامی زمینه های ساخت وب سایت به درد شما میخوره . 

از لینک های زیر میتوانید این دوره های پیش رفته را ببینید و در صورت تمایل در انها شرکت کنید . 

دوره ی آموزش ساخت فریمورک MVC با PHP 

دوره ی آموزش پروژه محور ساخت سیستم هتلداری با زبان PHP و الگوی MVC

همچنین به علت اینکه پایگاه داده مورد استفاده ی ما MySQL است بهتره کمی کار با این پایگاه داده و کوئری های sql آشنا باشید ( با یه سرچ ساده پیدا میکنید ) . 

خب با این فرضیات ما شروع میکنیم ابتدا یک فرم خالی HTML میسازیم که کاربران عبارت مورد جستجو را آنجا وارد کنند و سپس یک دکمه میزاریم برای جستجو که وقتی کلیک شد جستجو انجام بگیرد . 

 

آموزش ساخت بخش پایگاه داده موتور جستجوگر اینترنتی 

خب همانطور که بالا اشاره کردیم پایگاه داده ی ما MySQL است پس باید ابتدا این پایگاه داده را نصب و راه اندازی کنید اگر ویندوزی هستید بهتره یکی از برنامه های زیر را بگیرید که PHP و MySQL و دیگر مخلفات را داخل خودش دارن :‌

  • Xampp
  • Wampp
  • EasyPHP

توجه کنید که یکی از موارد بالا را به انتخاب خودتان نصب و اجرا کنید و ما Xampp را پیشنهاد میکنیم . 

برای شروع یک پایگاه داده با هر اسمی که دوست دارید بسازید و سپس یک جدول درونش به نام SEARCH_ENGINE بسازید . 

کد sql زیر به شما کمک میکند یک جدول با نام SEARCH_ENGINE بسازید .

CREATE TABLE SEARCH_ENGINE (
       `id` INT(11) NOT NULL AUTO_INCREMENT,
       `pageurl` VARCHAR(255) NOT NULL,
       `pagecontent` TEXT NOT NULL,
       PRIMARY KEY (`id`))

 

آموزش ساخت فرم برای موتور جستجوگر اینترنتی 

خب ، بعد از اینکه پایگاه داده آماده شد و جدول مورد نظر را ساختیم الان نوبت اینه که یک فرم HTML بسازیم که کاربران نهایی ما وقتی موتور جستجوگر ما را باز میکنند آنرا ببینند و بتوانند عبارت مورد نظر خود را تایپ کنند و دکمه ی جستجو را بزنند . 

در ریشه ی اصلی سرور مجازی که نصب کردید یه فایل جدید به نام index.php بسازید و محتویات زیر را درونش کپی کنید  . 

<html>
       <head>
             <title> My search engine </title>
       </head>
       <body>
             < form action = 'search.php' method = 'GET' >
                    < center >
                           <h1 > My Search Engine </h1 >
                           < input type = 'text' size='90' name = 'search' >
                           </ br >
                           </ br >
                           < input type = 'submit' name = 'submit' value = 'Search source code' >
                           < option > 10 </ option >
                           < option > 20 </ option >
                           < option > 50 </ option >
                    </ center >
             </ form >
       </ body >
</ html > 

فرم ما اکنون تکمیل شده و آماده استفاده است. این فرم توسط کاربران نهایی برای ورود به جستجوگر استفاده می شود و در عین حال به کاربران این امکان را می دهد که شماری از نتایج را که باید نشان داده شوند محدود کنند.

 

آموزش نوشتن الگوریتم موتور جستجوگر اینترنتی 

برای این کار ابتدا یک فایل دیگر PHP به نام search.php بسازید و در کنار همان index.php که بالا ساختیم قرار دهید . این فایل از بخش های زیر تشکیل خواهد شد . 

 

اتصال به پایگاه داده 

از کد زیر برای اتصال به پایگاه داده استفاده کنید 

mysql_connect ( "localhost", "USER_NAME", "PASSWORD" ) ; 
mysql_select_db ( "DB_NAME" );

خب حالا که اتصال به پایگاه داده برقرار شد بهتره که کوئری مناسب با کلمه یا عبارت مورد جستجو توسط کاربر را بنویسیم . 

نوشتن کوئری متناسب با عبارت جستجو شده 

کوئری مناسب برای این کار بصورت خیلی ساده طبق کدهای زیر است . 

$search_exploded = explode ( " ", $search );
$x = 0; 
foreach( $search_exploded as $search_each ) {
 $x++;
 $construct = " ";
 if( $x == 1 )
   $construct .= "keywords LIKE '%$search_each%' ";
 else
   $construct .= "AND keywords LIKE '%$search_each%' ";
  }
$construct = " SELECT * FROM SEARCH_ENGINE WHERE $construct ";
$run = mysql_query( $construct ); 

کار بعدی ما واکشی اطلاعات از پایگاه داده و نمایش آن به کاربر است . اگر جستجو نتیجه ای دربرنداشت هم باید پیامی به کاربر ارسال کنیم . 

واکشی نتیجه از پایگاه داده و قرار دادن نتیجه در اختیار کاربر . طبق کدهای زیر باید انجام بگیرد .

 if ($foundnum == 0)
             echo "Sorry, there are no matching result for <b> $search </b>.
             </ br >
             </ br > 1. Try more general words. for example: If you want to search 'how to create a website' then use general keyword like 'create' 'website'
             </ br > 2. Try different words with similar  meaning
             </ br > 3. Please check your spelling"; 
                    else {
                           echo "$foundnum results found !<p>";
                           while ( $runrows = mysql_fetch_assoc($run) ) {
                                  $title = $runrows ['title'];
                                  $desc = $runrows ['description'];
                                  $url = $runrows ['url'];
                                  echo "<a href='$url'> <b> $title </b> </a> <br> $desc <br> <a href='$url'> $url </a> <p>";
                    }
             } 

اکنون موتور جستجوی ساده ی ما آماده است .  در زیر کد کامل search.php را میبینید . 

<?php
       $button = $_GET[ 'submit' ];
       $search = $_GET[ 'search' ]; 
 
       if( !$button )
             echo "you didn't submit a keyword";
       else {
             if( strlen( $search ) <= 1 )
                    echo "Search term too short";
             else {
                    echo "You searched for <b> $search </b> <hr size='1' > </ br > ";
                    mysql_connect( "localhost","USERNAME","PASSWORD") ; 
                    mysql_select_db("DBNAME");
 
                    $search_exploded = explode ( " ", $search );
                    $x = 0; 
                    foreach( $search_exploded as $search_each ) {
                           $x++;
                           $construct = "";
                           if( $x == 1 )
                                  $construct .="keywords LIKE '%$search_each%'";
                           else
                                  $construct .="AND keywords LIKE '%$search_each%'";
                    }
 
                    $construct = " SELECT * FROM SEARCH_ENGINE WHERE $construct ";
                    $run = mysql_query( $construct );
 
                    $foundnum = mysql_num_rows($run);
 
                    if ($foundnum == 0)
                           echo "Sorry, there are no matching result for <b> $search </b>. </br> </br> 1. Try more general words. for example: If you want to search 'how to create a website' then use general keyword like 'create' 'website' </br> 2. Try different words with similar  meaning </br> 3. Please check your spelling"; 
                    else {
                           echo "$foundnum results found !<p>";
 
                           while( $runrows = mysql_fetch_assoc( $run ) ) {
                                  $title = $runrows ['title'];
                                  $desc = $runrows ['description'];
                                  $url = $runrows ['url'];
 
                                  echo "<a href='$url'> <b> $title </b> </a> <br> $desc <br> <a href='$url'> $url </a> <p>";
 
                           }
                    }
 
             }
       }
 ?>

 

ساختار موتور جستجوگر اینترنتی پیشرفته تر 

موتور های جستجوگر معمولا پیشرفته تر هستند یعنی شامل بخش ها و کدهای زیادی هستند که برای مثال یک عبارت خاص را از بین میلیون ها اسناد واکشی میکنند و نتایج را دسته بندی و مرتب سازی کرده و به کاربر نهایی نمایش میدهند . 

حالا این وسط ممکن است کاربر نهایی یکی از عبارت ها را اشتباه تایپ کرده باشد ولی موتور جستجوگر شما باید قادر باشد آنرا بفهمد

یا مثلا کاربر کلمه ی دقیق یک چیزی را به یاد نمی آورد و با اشاره به کلمات مشابه آن میخواهد آنرا پیدا کند گوگل این قابلیت را دارد که به این شخص در پیدا کردن گمشده ی خود کمک کند 

پس موتور های جستجوگر بزرگ در اینترنت بسیار گسترده تر از حوصله ای این آموزش و گنجایش اینجاست . ما قصد داریم اساس و پایه را یاد بگیرید سپس میتوانید آنرا گسترش دهید و حداقل یک موتور جستجو متوسط برای ایران بسازید که بومی باشد و به درد بخور !!!

 

بخش های اصلی یک موتور جستجوی اینترنتی 

  1. یک خزنده که اصطلاحا به آن crawler گفته میشود که وظیفه اش واکشی اطلاعات مربوط به سایت ها و اسناد و کلا جمع آوری هر آنچه در اینترنت است . 
  2. یک بخش index برای نگهداری صفحات یا اسناد ذخیره شده که بصورت ساختاری در آنجا قرار گرفته اند
  3. و یک مخزن اسناد برای نگهداری اطلاعات مربوط به کل اسناد موجود 

 

خزنده یا crawler موتور های جستجو چطور کار میکنند 

همانگونه که بالا هم گفتیم خزنده ها یا crawler ها در سرتاسر اینترنت میچرخند و اطلاعات سایت ها را جمع آوری میکنند اما خزنده ها باید لیستی از URL های اینترنتی داشته باشند که به آنها رجوع کنند . برای این کار چند روش کلی وجود دارد که در زیر به آنها پرداخته ایم .

  • متداول ترین روش این است که URL ها را بعنوان یک لیست و feed به خزنده بدهیم . سپس خزنده یک به یک به آنها رفته و عمل crawle را انجام دهد . 
  • روش دیگر دانلود کردن لیستی از URL ها و استفاده از آنهاست . 

ابتدا یک تجزیه کننده ی لینک ها مینویسیم تا لینک های واقعی را بشناسیم . کدهای زیر را ببینید .

          $file_handle = fopen( " Quantcast-Top-Million.txt ", "r" );
 
       while ( !feof ( $file_handle ) ) {
             $line = fgets( $file_handle );
             if( preg_match( '/^\d+/',$line ) ) { # if it starts with some amount of digits
                    $tmp = explode( "\t",$line );
                    $rank = trim( $tmp[0] );
                    $url = trim( $tmp[1] );
                    if( $url != 'Hidden profile' ) { # Hidden profile appears sometimes just ignore then
                           echo $	
			}
		}
	}
	fclose( $file_handle );

سپس کد خزنده را برای دریافت محتوای یک URL مینویسیم که دانلود کردن دااده های سایت های در لیست ممکن است کمی زمان ببرد . 

   $file_handle = fopen("urllist.txt", "r");
         while (!feof($file_handle)) {
                 $url = trim(fgets($file_handle));
                 $content = file_get_contents($url);
                 $document = array($url,$content);
                 $serialized = serialize($document);
                 $fp = fopen('./documents/'.md5($url), 'w');
                 fwrite($fp, $serialized);
                 fclose($fp);
         }
         fclose($file_handle);

 

خزنده ی بالا یک خزنده ساده ی تک رشته ای است که داخل حلقه ای تمامی URL ها را واکشی میکند اطلاعات آنها را دریافت و در دیسک ذخیره سازی میکند  .

نکته ای که وجود دارد این است که URL به همراه محتوای آن هم در یک فایل ذخیره میکنیم و این URL به رتبه بندی لیست و همچنین برای اینکه متوجه شویم منبع این محتوا کجاست به درد میخورد . 

بخش INDEX 

این بخش باید مسئولیت هایی را برعهده ی خود داشته باشد :‌

  1. نیاز است که محتویات را در دیسک ذخیره کند و آنها را واکشی کند 
  2. وقتی میخواهیم همه چیز را دوباره تولید کنیم باید قادر باشد خودش را پاکسازی کند 
  3. باید اسنادی که ذخیره میکند را اعتبار سنجی کند  

با تعاریف بالا باید interface خود را به شکل زیر داشته باشیم 

 interface iindex {
                 public function storeDocuments($name,array $documents);
                 public function getDocuments($name);
                 public function clearIndex();
                 public function validateDocument(array $document);
         }

 

هر چند پیاده سازی یک موتور جستجو کار ساده ای نیست ولی ما سعی کردیم کلیت موضوع را در این مقاله برای شما آشکار کنیم . چیزی که شما نیاز دارید این است که الان بدون ترس وارد کدها شوید و تمرین و تست کنید برای هر بخشی کی راه کاری مطمئنا وجود دارد .