ویژگی های جدید blade در لاراول ۵.۶

ویژگی های جدید blade در لاراول ۵.۶

ویژگی های جدید blade در لاراول ۵.۶

 

 

 

ویژگی های جدید blade در لاراول ۵.۶

سلام ،دوستان به لطف Taylor Otwell ، در Laravel 5.6 شامل دو دستورالعمل جدید برای جعل درخواست در فرم ها (CSRF) و ورودی ها به روش HTTPخواهد بود.

در Laravel 5.5 در بالای فرم ها برای ایجاد یک ورودی (input) پنهان برای فیلد CSRF و روش HTTP spoof بدین شکل انجام می شد

{{ csrf_field() }}
{{ method_field('PUT') }}

اما در نسخه جدید Laravel 5.6 می توانید از کد زیر استفاده کنید

@method('put')
@csrf

لاراول برای محافظت از سایت شما در برابر حملات CSRF آن را آسان می کند. با این حال، اگر می خواهید یک فرم را به طور موفقیت آمیز ارسال کنید، باید یک ورودیCSRF را برای تأیید اینکه ارسال فرم از برنامه و نه از یک سایت دیگر، می‌باشد را قرار دهید.

درضمن ، از آنجایی که فرمهای HTML نمیتوانند درخواستهای PUT، PATCH یا DELETE را ایجاد کنند، باید یک ورودی _method پنهان برای گمراه کردن این افعال HTTP اضافه کنید. Laravel با استفاده از ورودی _method برای هدایت درخواست به مسیر route مناسب و Action مورد نظر در کنترلر اقدام میکند .

امیدوارم این مقاله مفید براتون واقع شده باشه .

Tmux چیست و لزوم یادگیری آن برای لینوکسی ها

Tmux چیست و لزوم یادگیری آن برای لینوکسی ها

Tmux چیست و لزوم یادگیری آن برای لینوکسی ها

 

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

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

 

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

Tmux چیست و لزوم یادگیری آن برای لینوکسی ها

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

 

برای نصب Tmux ابتدا باید ‍‍libevent رو نصب کرده باشید که میتونید اون رو از وبسایت اصلی دانلود و نصب کنید.

حالا نوبت نصب tmux میرسه که با دستورات زیر میتونید این کار رو انجام بدید :‌

git clone https://github.com/tmux/tmux.git
cd tmux
sh autogen.sh
./configure && make

ابتدا repository اصلی tmux رو بارگذاری میکنیم روی سیستم خودمون (کلون میگیریم) ، پیشنهادم اینه قبل از انجام به پوشه tmp برید ، با استفاده از دستور بعدی وارد دایرکتوری بارگذاری شده میریم و سپس فایل های نصبی رو اجرا میکنیم. معمولا اکثر افراد با zsh کار کردن و به عنوان ترمینال اصلی قرار دادنش ، اگر از zsh نمیکنید برای تکمیل خودکار دستورات پیشنهاد میکنم این پکیج رو هم نصب کنید . حالا با زدن دستور زیر میتونید وارد محیط Tmux بشید :

tmux

برای استفاده از Tmux به عنوان ترمینال پیش فرض باید کد زیر را در تنظیمات ترمینال پیش فرض که در اینجا برای من zsh هست قرار بدید :

[[ $TERM != "screen" ]] && exec tmux

معمولا فایل کانفیگ bash پیش فرض در ~/.bashrc و برای zsh در ~/.zshrc هست.

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

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

در تنظیمات و آموزش هایی که برای این کامپوننت هست معمولا کلمه prefix را زیاد میبینید که به صورت پیش فرض منظور ترکیب کلید های ctrl + b هست. در Tmux شما میتونید به جای استفاده از پنجر های مختلف از یک پنجره با چندین panes استفاده کنید. برای ساخت از دستورات زیر میتونید استفاده کنید :

Tmux چیست و لزوم یادگیری آن برای لینوکسی ها

Prefix + “
Prefix + %

با استفاده از دستور اول pane به صورت افقی و در دستور دوم به صورت عمودی ایجاد میشه. برای بستن هر کدوم از pane هم میتونید از Ctrl +d استفاده کنید.

برای تغییر اسم pane از Prefix + , بعد از تغییر هم Enter بزنید.

برای جابه جایی بین Pane ها میتونید از Prefix + [arrow key] استفاده کنید.

اگر دوست داشتید یکی از pane ها به صورت تمام صفحه بشه از Prefix + z و برای برگشت به حالت قبل هم از همین دستور استفاده کنید.

برای تغییر سایز pane از دستور Prefix + Ctrl +[arrow key] میشه بهره گرفت. با استفاده از لینکی که در بالا قرار دادم میتونید لیست کامل کلید های میانبر رو ببینید.

Tmux پلاگین های زیادی داره که میتونید ازشون استفاده کنید، برای استفاده از این پلاگین ها از Tmux plugin manager استفاده میکنیم.

با استفاده از دستور زیر Tmux plugin manager را نصب کنید :

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

برای استفاده از پلاگین ها و همچنین شخصی سازی باید یک فایل با نام .tmux.conf در مسیر کاربر جاری یا همون ~ داشته باشیم.

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

set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
run '~/.tmux/plugins/tpm/tpm'

برای اضافه کردن پلاگین جدید تنها باید خط زیر رو به فایل کانفیگ اضافه کنید:

set -g @plugin 'github_username/plugin_name'

بعد از اضافه کردن هر پلاگین باید تنظیمات tmux را با استفاده از دستور زیر بارگذاری کنید:

Tmux چیست و لزوم یادگیری آن برای لینوکسی ها

tmux source ~/.tmux.conf

مدیران لینوکسی مثل من دوست دارن تنها یک صفحه ترمینال به صورت تمام صفحه جلوشون باز باشه و تمامی کارها با استفاده از ترمینال صورت بگیره . کارهای زیادی میشه انجام داد از نمایش باتری ، تاریخ ، میزان مصرف رم و cpuتا شخصی سازی clipboard و … . برای مثال من دوست دارم همیشه میزان مصرف باتری و تاریخ در بالای ترمییال نمایش داده بشه با اضافه کردن خط زیر به فایل .tmux.conf. منو به بالای ترمینال اضافه میشه :

set -g status-right '#{battery_status_bg} Batt: #{battery_icon} #{battery_percentage} #{battery_remain} | %a %h-%d %H:%M '                                                                                          
set-option -g status-position top

در اینجا سعی کردم به صورت خلاصه شما با Tmux آشنا بشید ، با توجه به اینکه پلاگین ها و قابلیت های زیادی وجود داره برای اطلاعات بیشتر میتونید از لینک های این مقاله و یا دستورPrefix + ? در ترمینال استفاده کنید.

Tmux چیست و لزوم یادگیری آن برای لینوکسی ها

 

نتایج نظر سنجی Stack Overflow در سال ۲۰۱۹

نتایج نظر سنجی Stack Overflow در سال ۲۰۱۹

نتایج نظر سنجی Stack Overflow در سال ۲۰۱۹

 

 

بنابر Stack Overflow:

نتایج کلیدی

  • پایتون، سریع ترین زبان برنامه نویسی بزرگ، در رتبه بندی ما در رتبه بندیهای زبانهای برنامه نویسی افزوده شده است و در سال جاری از جاوا خارج می شود و دومین محبوب ترین زبان Back End است.
  • بیش از نیمی از پاسخ دهندگان اولین خط کد خود را تا زمان شانزده سالگی خود نوشته بودند، هرچند این تجربه براساس کشور و جنسیت متفاوت است.
  • متخصصان DevOps یکی از بالاترین شغل های پرداخت شده است و مهندسین آن از مشاغل خود راضی هستند و به دنبال شغل های جدید در پایین ترین سطح هستند.
  • از کشورهای برتر در نظرسنجی ما، چین خوش بین ترین توسعه دهندگان را دارد، آنها معتقدند که امروزه مردم متولد شده زندگی بهتر از والدین خود دارند. توسعه دهندگان کشورهای اروپای غربی مانند فرانسه و آلمان در میان کمترین خوش بینی را در مورد آینده دارند.
  • هنگامی که فکر می کنم در مورد بلوک کننده ها به بهره وری، انواع مختلف توسعه دهندگان گزارش چالش های مختلف. مردان احتمال بیشتری دارند که گفته شود که مشغله کار غیر توسعه ای برای آنها مشکل است، در حالی که پاسخ دهندگان اقلیت جنسیت بیشتر به این نکته می گویند که محیط کار سمی مشکل است.
  • ما از پاسخ دهندگان خواسته بودیم که در مورد آخرین بار که مشکلات برنامه نویسی را با و بدون سایت ما حل می کردند فکر کنند. داده ها نشان می دهند که ما زمان حل مشکل را بین ۳۰ تا ۹۰ دقیقه در هفته برای توسعه دهنده پایین می آوریم!

نتایج نظر سنجی Stack Overflow در سال ۲۰۱۹مقایسه ی فریم ورک های روز دنیا


بیشترین تکنولوژی های محبوب

  1. JavaScript 67.8٪
  2. HTML / CSS 63.5٪
  3. SQL 54.4٪
  4. Python 41.7٪
  5. Java 41.1٪
  6. Bash / Shell / PowerShell 36.6٪
  7. C# 31.0٪
  8. PHP 26.4٪
  9. C++ 23.5٪
  10. TypeScript 21.2٪
  11. C 20.6٪
  12. Ruby 8.4٪
  13. Go 8.2٪
  14. Assembly 6.7٪
  15. Swift 6.6٪
  16. Kotlin 6.4٪
  17. R 5.8٪
  18. VBA 5.5٪
  19. Objective-C 4.8٪
  20. Scala 3.8٪
  21. Rust 3.2٪
  22. Dart 1.9٪
  23. Elixir 1.4٪
  24. Clojure 1.4٪
  25. WebAssembly 1.2٪

چارچوب وب

  1. jQuery 48.7%
  2. React.js 31.3%
  3. Angular/Angular.js 30.7%
  4. ASP.NET 26.3%
  5. Express 19.7%
  6. Spring 16.2%
  7. Vue.js 15.2%
  8. Django 13.0%
  9. Flask 12.1%
  10. Laravel 10.5%
  11. Ruby on Rails 8.2%
  12. Drupal 3.5%

پایگاه های داده

نتایج نظر سنجی Stack Overflow در سال ۲۰۱۹

  1. MySQL 54.0%
  2. PostgreSQL 34.3%
  3. Microsoft SQL Server 32.8%
  4. SQLite 31.6%
  5. MongoDB 25.5%
  6. Redis 18.6%
  7. MariaDB 16.5%
  8. Oracle 16.5%
  9. Elasticsearch 14.3%
  10. Firebase 12.8%
  11. DynamoDB 6.2%
  12. Cassandra 3.5%
  13. Couchbase 2.0%

بیشترین علاقه، خواستنی و دوست داشتنی ترین زبان ها

  1. Rust 83.5%
  2. Python 73.1%
  3. TypeScript 73.1%
  4. Kotlin 72.6%
  5. WebAssembly 69.5%
  6. Swift 69.2%
  7. Clojure 68.3%
  8. Elixir 68.2%
  9. Go6 7.9%
  10. C# 67.0%
  11. JavaScript 66.8%
  12. Dart 66.3%
  13. SQL 64.1%
  14. HTML/CSS 62.2%
  15. F# 61.7%
  16. Bash/Shell/PowerShell 59.5%
  17. Scala 58.3%
  18. Java 53.4%
  19. C++ 52.0%
  20. R 51.7%
  21. Ruby 50.3%
  22. Erlang 47.4%
  23. PHP 45.8%
  24. C 42.5%
  25. Assembly 35.6%

بیشترین علاقه، خواستنی و دوست داشتنی ترین چارچوب ها

نتایج نظر سنجی Stack Overflow در سال ۲۰۱۹

  1. React.js 74.5%
  2. Vue.js 73.6%
  3. Express 68.3%
  4. Spring 65.6%
  5. ASP.NET 64.9%
  6. Django 62.1%
  7. Flask 61.1%
  8. Laravel 60.1%
  9. Angular/Angular.js 57.6%
  10. Ruby on Rails 57.1%
  11. jQuery 45.3%
  12. Drupal 30.1%

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

  1. Visual Studio Code 50.7%
  2. Visual Studio 31.5%
  3. Notepad++ 30.5%
  4. IntelliJ 25.4%
  5. Vim 25.4%
  6. Sublime Text 23.4%
  7. Android Studio 16.9%
  8. Eclipse 14.4%
  9. PyCharm 13.4%
  10. Atom 13.3%
  11. IPython / Jupyter 9.5%
  12. Xcode 9.4%
  13. PHPStorm 7.6%
  14. NetBeans 5.9%
  15. Emacs 4.5%
  16. RStudio 3.4%
  17. RubyMine 1.4%
  18. TextMate 0.9%
  19. Coda 0.7%
  20. Komodo 0.4%
  21. Zend 0.4%
  22. Light Table 0.2%
اصول Solid در php

اصول Solid در php

اصول Solid در php

 

در این مقاله قصد دارم شما را با اصول Solid آشنا کنم که هر برنامه نویسی برای ساخت برنامه ای بهتر باید آن را بداند و انجام دهد. Solid در واقع یک سریع دستورالعمل هست که اگر شما از آن استفاده کنید ( به صورت اصولی و صحیح) کدهای نوشته شده ساده، توسعه پذیر، منطقی و واضح هستند به عبارتی بهتر باعث میشود از طراحی بد اجتناب کنید. در بعضی توضیحات از کلمه ماژول و در بعضی از موارد کلاس استفاده شده، ما اکثرا از کلمه کلاس در طول مقاله استفاده میکنیم.

Solid شامل موارد زیر میباشد :

  1. Single Responsibility Principle (SRP) : یکی از مهم ترین قواعد Solid که بیان میکند تنها یک مسئولیت (وظیفه) واحد توسط هر کلاس ارائه میشود.
  2. Open-Close Principle :‌ این اصل بیان میکند که کلاس باید گسترش پذیر باشد اما برای اصلاح بسته باشد.
  3. Liskov Substitution : کلاس های مشتق شده میتوانند در مکان هایی که کلاس پایه استفاده شده است جایگزین شوند.
  4. Interface Segregation :‌ ما باید interface های خود را بهinterface های کوچک تری تبدیل کنیم تا در هر بخش تنها همان نیاز کاربر را بر طرف کنیم.
  5. Dependency Inversion : این اصل به عبارتی ساده بیان میکند که کلاس های سطح بالا نباید به کلاس سطح پایین وابستگی داشته باشن بلکه هردوی آنها باید به abstractions وابسته باشند.

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

اصول Solid در php

Single Responsibility

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

برای نمونه ما کد زیر را داریم :

class Setting{
  public function setSettings()
  {
    // set settings
  }
  public function getSettings()
  {
    // get settings
  }
  public function showSettings()
  {
    // show output
  }
}
اصول Solid در php

توجه کنید که هر تابع قراره تنها یک کار انجام بده و قراره هر کلاس یا شی یک هدف واحد داشته باشه، کدها رو به شکل زیر تغییر میدیم:

class Setting{
  public function setSettings()
  {
    // set settings
  }
  public function getSettings()
  {
    // get settings
  }
}
class Output
{
  public function show($data)
  {
    // show output
  }
}

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

اصول Solid در php

Open-Close

برنامه باید به صورتی نوشته شود که توسعه پذیر باشید اما قابل تغییر نباشد به این صورت که بدون هیچگونه تغییر در ساختار کلاس اصلی بتوانیم کلاس را توسعه دهیم.

برای مثال ما کد زیر برای ورود اطلاعات به ۲ نوع پایگاه داده رو داریم :

class DB
{
  public function insert($connection, $into, $cell, $data)
  {
    if (is_a($connection, 'mysqli')) {
      // connect and insert into mysql and return id 
    } elseif (is_a($connection, 'mongodb')) {
      // connect and insert into mongodb and return id
    }
      throw new DatabaseInvalidConnection;
  }
}

خوب این کد توسعه پذیر نیست و برای هر پایگاه داده ما باید بدنه کلاس رو تغییر بدیم، با توجه به اصل بیان شده کد به شکل زیر تغییر میکنه :

interface Database{
  public function insert($into, $cell, $data);
  public function connect();
}
class Mysql implements Database
{
  public function connect()
  {
    // connect to  mysql database
  }
  public function insert($into, $cell, $data)
  {
    // insert into mysql and return id
  }
}
class NoSql implements Database
{
  public function connect()
  {
    // connect to  mongodb database
  }
  public function insert($into, $cell, $data)
  {
    // insert into mongodb and return id
  }
}
class DB
{
  public function insert($connection, $into, $cell, $data)
  {
    $connection->connect();
    $connection->insert($into, $cell, $data);
  }
}

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

اصول Solid در php

Liskov Substitution

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

برای مثال ما کد زیر را داریم :

interface OutputInterface{
  public function show($data);
}
class Output implements OutputInterface{
  public function show($data)
  {
    // show data
  }
}

class Formatter extends Output
{
  public function jsonFormat($data)
  {
    // return json data
  }
  public function show($data)
  {
    $data = $this->jsonFormat($data);
    // show Data
  }
}

در این کد اصول Solid رعایت نشده است یا به عبارت بهتر Liskov substitution به درستی اعمال نشده است. کلاس Formatter فرزند کلاس Outputمیباشد و باید تمامی فعالیت های کلاس والد را بتواند انجام دهد. اگر قسمتی از کد که از کلاس Output استفاده شده است را تغییر دهیم به صورتی که از کلاس Formatter استفاده کند خروجی مد نظر ما داده نمیشود زیرا در این کلاس متد show را ما مجددا بازنویسی کردیم و خروجی به صورت json نمایش داده میشود.

Interface Segregation

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

کد زیر را در نظر بگیرید:

interface ImagesInterface
{
  public function setWatermark($src);
  public function saveFile($file, $path);
}

class Image implements ImagesInterface
{
  public function setWatermark($src)
  {
    // set watermark
  }
  public function saveFile($file, $path)
  {
    // save file
  }
}

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

interface ImagesInterface
{
  public function setWatermark($src);
}
interface FileInterface
{
  public function saveFile($file, $path);
}
class Image implements ImagesInterface,FileInterface
{
  public function setWatermark($src)
  {
    // set watermark
  }
  public function saveFile($file, $path)
  {
    // save file
  }
}

Dependency Inversion

یکی اصل مهم از Solid میباشد که بیان میکند که یک ماژول سطح بالا نباید به یک ماژول سطح پایین وابسته باشد بلکه هر دوی آنها باید به abstractionsوابسته باشند. abstractions نباید به جزئیات وابسته باشد بلکه جزیئات باید به abstractions وابسته باشد.

اصول Solid در php

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

class Crawler
{
  public function crawlPage()
  {
    // crawl Page with DOMDocument
  }
}
class Engines
{
  public function indexing(Crawler $crawler)
  {
    $crawler->crawlPage();
  }
}

اگر در قطع کد بالا ما در بدنه کلاس Crawler تغییر ایجاد کنیم ، کلاس Engines هم تحت تاثیر قرار میگرد. برای حل این مسئله کد را به شکل زیر تغییر میدهیم:

interface CrawlerInterface
{
  public function crawlPage();
}

class Crawler implements CrawlerInterface
{
  public function crawlPage()
  {
    // crawl Page with DOMDocument
  }
}
class Engines
{
  public function indexing(CrawlerInterface $crawler)
  {
    $crawler->crawlPage();
  }
}

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

اصول Solid در php

 

GtMetrix چیست(قسمت سوم)

GtMetrix چیست(قسمت سوم)

GtMetrix چیست(قسمت سوم)

بخش سوم آشنایی با Gtmetrix

Optimize the order of styles and scripts  روش صحیح چیدن فایل های استایل و جاوا اسکریپت در کنار یگدیگر

این بخش GTMetrix به شما می‌گوید که فایل‌های مربوط به استایل یا همان CSSهای خود را پیش از فایل‌ها یا کدهای جاوا اسکریپت سایت قرار دهید تا سایت شما سریعتر بارگذاری شود.

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

GtMetrix چیست(قسمت سوم)

 

  Inline small CSSفراخوانی فایل‌های استایل کوچک از داخل سایت

 

 

 

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

.

Inline small JavaScript  فراخوانی فایل‌های جاوا اسکریپت کوچک از داخل سایت

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

GtMetrix چیست(قسمت سوم)

Enable Keep-Alive  زنده نگاه داشتن فایل بین سرور و مرورگر!

در این مورد GTMetrix از شما می‌خواهد مواردی که به شما نشان می‌دهد را به صورت زنده بین سرور و مرورگر خود قرار دهید. برای این کار کد زیر رو به فایل .htaccess موجود در شاخه اصلی سایت‌ خود اضافه کنید.

Leverage browser caching  ذخیره‌سازی بخش‌های ثابت در cach مرورگر کاربر

در این بخش GTMetrix لیستی از فایل‌هایی که بهتر است در مرورگر کاربر ذخیره شود را نشان می دهد. مثلا فرض کنیدGTMetrix  آدرسی مثل “http://…/font/nassim.woff” را نشان دهد، این آدرس نشان دهنده نوع فایل از نوع فونت با پسوند woff است. حالا اگه بخواهیم کاری کنیم این نوع فایل در مرورگر کاربر کش شود کافیست کد زیر را در فایل .htaccessقرار دهید

.

Avoid bad requests  فایل‌هایی که وجود خارجی ندارند

در این بخش می‌توانید فایل‌ها یا تصاویری که در سایت استفاده کردید ولی در حقیقت وجود خارجی ندارند (مثلا حذف شدن) را ببینید و آنها را درست کنید.

Avoid a character set in the meta tag عدم تعیین نوع کاراکتر

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

Avoid landing page redirects  ریدایرکت نامناسب

این گزینه در بیشتر سایتها ۱۰۰% قرار دارد و خیلی دیده نمیشود سایتی در این مورد مشکلی داشته باشد. اصولا این مورد در سایت‌هایی دیده میشود که بارگذاری سایتشان را  بدون www به کمک فایل .htaccess قفل کردند. درسته این کار با الگوریتم‌هایی که برای سئو ارایه میشود کاملا هماهنگ است ولی در بعضی موارد از لحاظ گوگل تخلف محسوب میشود. زیاد نگران این گزینه نباشید.

Avoid CSS @import مدیریت فراخوانی فایلهای CSS خارجی

خیلی مواقع دیده میشود که وب‌مسترها مثلا اگر چند فایل استایل خارجی داشته باشند فایلی که اصلی است را در سمت HTMLسایت فراخوانی میکنند و بقیه با دستور “(“import url(“your file adress.css@” از داخل آن فایل استایل اصلی بارگذاری میکنند. اینکار یکی از اشتباهاتی است که گوگل آن را یکی از خطاهای اصلی می‌داند. برای رفع این مشکل کافیست به آدرسی که GTMetrix داده است بروید و اون بخش مربوط به @import را حذف کنید و فایل را ذخیره کنید. بعد به بخش Headسایت‌تون بروید و با دستور زیر اون‌ها رو جداگانه فراخوانی کنید و یا اینکه اگر امکانش بود با هم ادغام کنید.

Put CSS in the document head  فراخوانی فایل CSS خارج از بخش head سایت

GTMetrix زمانی با این گزینه به شما اخطار میدهد که فایل استایل خودتان را در بخشی خارج از head سایتتان فراخوانی کرده باشید مثلا در بخش body. برای حل این مشکل کافیست بخشی را که اخطار داده را به قسمت head سایت منتقل کنید و خطای موجود در این بخش را برطرف کنید.

Enable gzip compression فعال کردن قابلیت gzip

قابلیت gzip باعث میشود فایل‌هایی که از سمت سرور به مرورگر ارسال میشود به صورت کمپرس شده و فشرده سازی شده به مرورگر ارسال شود و در حقیقت میزان حجمی که در مرورگر کاربر باید لود شود کمتر میشود و سایت سریع‌تر لود میشود. برای رفع این گزینه کافیه کد زیر را به فایل .htaccess اضافه کنید.

GtMetrix چیست(قسمت سوم)

GtMetrix چیست(قسمت دوم)

GtMetrix چیست(قسمت دوم)

GtMetrix چیست(قسمت دوم)

 

 

آموزش بهینه سازی با Gtmetrix  بخش دوم:

Combine images using CSS sprites  : ادغام تصاویر موجود در فایل استایل (css) سایتتان

GTMetrix   در این قسمت لیست تصاویری که ابعاد کوچکی دارند یا حجمشان خیلی پایین است را به شما نشان میدهد شما باید با قابلیت sprites که در CSS وجود داره این تصاویر را ادغام کنید و به عنوان یک تصویر واحد از آن استفاده کنید.

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

توضیح کوتاهی از یک نمونه:

فرض کنید  این دو تا تصویر  و  رو تو سایت استفاده کرده ایم. طوری که اولی بک گراند است و دومی درصورت قرار گرفتن موس نمایش داده می شود.

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

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

GtMetrix چیست(قسمت دوم)

 

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

:Specify image dimensions  قرار دادن مقدار برای طول و عرض تصاویر

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

اگه روی عنوان این بخش کلیک کنید و اطلاعات داخل آن را ببینید، متوجه میشوید هر سطر یک آدرس عکس است و روبرویش این سطر قرار دارد  “(Dimensions: 10 x 10)” . مقدار اولی  width و مقدار دومی  height مربوط به هر تصویر است. برای اینکه این مقادیر را به هر تصویر اختصاص دهید کافیست ابتدا محل بارگزاری اون عکس رو در قالب وردپرس بدست بیارید و بعد مقدار بدهید . به این شکل:

” alt=”توضیح” width=”10″ height=”10″ />

نکته : تنها وارد کردن اندازه تصاویر از طریق استایل کافی نیست و شما باید از روش بالا نیز برای تغییر اندازه عکس استفاده کنید.

:Defer parsing of JavaScript   تاخیر در بارگذاری فایلهای جاوا اسکریپت

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

روش اول :

GtMetrix چیست(قسمت دوم)

روش دوم: این روش بیشتر مواقع باعث ایجاد چند خطا در تولید سایت میشود

نکته : البته گاهی تغییر در این روش ها باعث جلوگیری از بارگذاری سایت شما می شود.

Optimize images بهینه سازی حجم تصاویر

۱۰۰ درصد کردن این بخش کاری ندارد ولی فقط یکم وقت زیادی ازتون می گیرد.

GtMetrix چیست(قسمت دوم)

در شکل بالا ابتدا پیش از آدرس عکس‌ها به شما میگوید که اگر تصاویر قرار گرفته در این بخش را Optimize کنید، در کل ۲۱ درصد از حجمشون یعنی حدود ۲۱٫۶ کیلوبایت کم میشود. حالا همینطور که تماشا میکنید یک آدرس عکس قرار دهید و بعد نوشته بعد از بهینه سازی چقدر از حجمش کم میشود و در نهایت خودش یه نسخه بهینه شده ی عکس را به صورت optimized version در اختیار شما قرار میدهد که میتونانید آن را دانلود کنید و با همون عکس در هاست  خودتون جای گزین کنید تا بهینه شود.

اگه از سیستم وردپرس استفاده میکنید برای اینکه این کار به صورت اتوماتیک انجام شود میتوانید از افزونه Smush.it استفاده کنید. یا از سایت هایی مثل ysmush.it برای بهینه سازی تصاویر قبل از آپلود استفاده کنید.

Prefer asynchronous resources  ناهماهنگی در فراخوانی فایلهای جاوا اسکریپت

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

Minify HTML  کاهش حجم کدهای HTML

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

Minify CSS و Minify JavaScript : کاهش حجم کدهای JavaScript و CSS

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

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

 

 

 

GtMetrix چیست

GtMetrix چیست

GtMetrix چیست

 

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

GTMetrix در حقیقت از استانداردهایی که گوگل به عنوان معیار قرار داده استفاده میکند این آدرس صفحه بررسی PageSpeedسایت شما به کمک گوگل هست که البته ایرانی‌ها امکان دسترسی بهش رو ندارن مگه با یکم خلاقیت! همچنین گوگل یه افزونه برای این کار طراحی کرده است که همین کار رو انجام میدهد، این افزونه هم برای Chrome, Firefox قابل دسترس است.

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

GtMetrix چیست

بعد اینکه آدرس سایت مورد نظرتون رو در قسمت “Analyze Performance of” وارد کردین، روی دکمه “Go!” کلیک کنین تا عملیات بررسی سایت شروع شود. بعد از مدت کوتاهی برگه‌ای به شکل زیر باز میشود که نتایج بررسی انجام شده رو بهتون نشون میدهد.

GtMetrix چیست

نتیجه حاصل از دو بخش اصلی Summary و Breakdown تشکل شده:

اطلاعات نمایش داده شده در Summary : این قسمت نمایش آماری اطلاعات بدست اومده در بخش Breakdown رو نشون میدهد.

Page Speed Grade تو این قسمت به کمک یک درصد (۸۵%) میزان بهینه بودن موارد موجود در بخش Breakdown را به تماشا میگذارد.

YSlow Grade در این قسمت هم مثل قسمت پیش یک درصد (۸۳%) به شما نمایش داده شده با این تفاوت که این بار ملاک‌های موجود در بخش YSlow واقع در Breakdown مد نظر قرار گرفته. YSlow ابزار و استانداردهای یاهو برای PageSpeedهست.

Page load time زمان بارگذاری سایت رو بر حسب ثانیه نشون میدهد .

Total page size حجم برگه‌ای که اون رو مورد بررسی قرار دادین هست.

Total number of requests تعداد درخواست‌هایی که به سرور برای بارگذاری قسمت‌های گوناگون سایت ارسال میشود.

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

اطلاعات بدست آماده در  بخش Breakdown در GTMetrix از چهار زبانه تشکیل شده که به ترتیب زیر هستد:

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

YSlow  اطلاعات بدست اومده از بررسی سایت با الگوریتم‌های یاهو رو نشون میدهد.

Timeline  تو این بخش با استفاده از نمودار زمان بارگزاری هر بخش رو نشون میدهد. میشه اطلاعات مفیدی رو از نحوه بارگذاری سایت تو این بخش دید.

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

در این مطلب تنها به بخشی از مزایا و مراحله page speed اشاره شد در مطلب بعدی به قسمت ها و مراحله بعدی اشاره می شود. امیدوارم مطلب برایتان مفید بوده باشد.

GtMetrix چیست

وردپرس سیستم مدیریت محتوا – WordPress CMS

وردپرس سیستم مدیریت محتوا – WordPress CMS

وردپرس سیستم مدیریت محتوا – WordPress CMS

 

 

وردپرس چیست؟

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

وردپرس سیستم مدیریت محتوا – WordPress CMS

تاریخچه

مت مولنوگ، توسعه‌دهنده اصلی وردپرس، در سال ۱۳۸۲ (۲۰۰۳ میلادی) به کمک مایک لیتل با استفاده از سیستم b۲ شروع به نوشتن وردپرس نمودند. در ادامه کار توسعه‌دهندگان زیادی مثل Michel Valdrighi که بنیانگذار b۲ بود، به آن‌ها پیوستند.
وردپرس در آغاز یک سرویس وبلاگ دهی بود که بعدا به‌صورت آزاد برای توسعه همگانی منتشر شد.
این سیستم تا به امروز با سرعت و پیشرفت قابل‌ توجهی تبدیل به معروف‌ترین و پرکاربردترین ابزار ساخت وبلاگ و وب‌سایت بر روی‌ هاست شده است.

تکنولوژی

وردپرس با سرعت بالایی به‌روزرسانی می‌شود و به همین دلیل از به‌روز ترین تکنولوژی ها و زبان های موجود مثل PHP ۷ و بالاتر و mysql ۵,۶ استفاده می‌کند.

مزایا

• رابط کاربری بسیار ساده و زیبا
• سئوی بسیار قوی
• پشتیبانی قوی در سطح جهان
• موجود به ۱۶۴ زبان بین‌المللی
• سبک و قدرتمند
• دارای حدود ۵۰ هزار پلاگین رایگان
• دارای بیش از ۵ هزار قالب رایگان

وردپرس سیستم مدیریت محتوا – WordPress CMS

معایب

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

ویژگی ها و امکانات

• دارای اپلیکیشن موبایل برای مدیریت سایت
• پشتیبانی از ساعت‌های محلی
• فشرده‌سازی محتوا به‌وسیله gzip
• مشخص کردن سطح دسترسی
• ثبت و ذخیره مشخصات کاربران
• پویا بودن و انعطاف‌پذیری بالا
• امکان راه‌اندازی سیستم وبلاگ دهی
• ساخت و مدیریت آسان فهرست
• شخصی‌سازی قالب‌ها و ابزارک‌ها از پنل مدیریت
• ارسال و مدیریت دیدگاه کاربران
• راه‌اندازی تالار گفتگو
• راه‌اندازی فروشگاه اینترنتی
• و….

وردپرس سیستم مدیریت محتوا – WordPress CMS

جوملا سیستم مدیریت محتوا – Joomla CMS

جوملا سیستم مدیریت محتوا – Joomla CMS

جوملا سیستم مدیریت محتوا – Joomla CMS

 

 

جوملا چیست؟

جوملا یک سیستم مدیریت محتوای (CMS) تحت وب است که با امکانات گسترده خود، به شما کمک می‌کند وب‌سایت و یا برنامه‌های تحت وب دلخواه خود را بسازید.
به‌وسیله این سیستم مدیریت محتوا که ۱۰سایت‌های جهان با آن راه‌اندازی شده‌اند می‌توانید در کوتاه‌ترین زمان و با داشتن مقداری تخصص فنی، یک وب‌سایتحرفه‌ای با امکانات گسترده ایجاد و مدیریت کنید.

جوملا یک نرم‌افزار متن‌باز (Open Source) است که به‌صورت رایگان قابل‌استفاده می‌باشد و با داشتن اطلاعاتی درزمینه برنامه‌نویسی، شما هم می‌توانید یکی ازتوسعه‌دهندگان آن باشید.

جوملا سیستم مدیریت محتوا – Joomla CMS

تاریخچه

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

تکنولوژی جوملا

ساختار اصلی جوملا به زبان PHP و پایگاه داده MySQL و بر اساس معماری MVC طراحی شده است اما با انواع پایگاه‌های داده مانند:

• Microsoft SQL Azure
• Microsoft SQL Server
• MySQL
• Oracle
• SQLite
• …

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

 

 

مزایا

• به راحتی می‌توانید در عرض ۱۵ دقیقه دانلود و نصب نمایید اما پروسه نصب آن به سختی دروپال و یا سادگی وردپرس نیست.
• دارای حدود ۸ هزار پلاگین استاندارد رایگان
• امکان ویرایش و افزودن امکانات جدید به وب سایت یا پرتال
• سفارشی سازی ماژول‌ها
• بدون محدودیت در سفارشی سازی، توسعه، پشتیبانی و امنیت

معایب

• نیاز به منابع سرور زیاد در صورت بالا رفتن تعداد بازدیدکننده
• ناسازگاری بین برخی پلاگین ها
• رابط کاربری پیچیده

ویژگی ها و امکانات

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

جوملا سیستم مدیریت محتوا – Joomla CMS

دروپال سیستم مدیریت محتوا – Drupal CMS

دروپال سیستم مدیریت محتوا – Drupal CMS

دروپال سیستم مدیریت محتوا – Drupal CMS

 

 

دروپال چیست؟

دروپال – Drupal یک سیستم مدیریت محتوای تحت وب است که بدون داشتن دانش برنامه‌نویسی و مقداری اطلاعات فنی، امکان ایجاد و مدیریت انواعوب‌سایت‌ها را برای شما فراهم می‌کند.
این سیستم مدیریت محتوا، رایگان و متن‌باز است و با زبان برنامه‌نویسی PHP نوشته‌شده و با دیتابیس‌هایی مثل MySQL و Postgres کار می‌کند.
از آن به‌عنوان یک CMF نیز استفاده می‌شود.
این CMS ساده و قدرتمند و انعطاف‌پذیر، به دلیل معماری داخلی و ماژول‌هایی که دارد، توانایی تولید نرم‌افزارهای جامع تحت وب را دارد.

تاریخچه

دروپال مانند بسیاری از دست‌آوردهای بشری، ساخت دروپال نیز توسط Dries Buytaert و Hans Snijder از خوابگاه دانشجویی دانشگاه Antwerp شروع شد.
در اواخر سال ۱۳۸۰ (۲۰۰۱ میلادی) بود که Dries تصمیم گرفت؛ سیستم خبری که برای کمک به دانشجویان طراحی کرده بود را به‌صورت باز متن در اختیار همه قرار دهد.
این تصمیم هوشمندانه باعث شد که دروپال اکنون به‌صورت کاملاً سازماندهی‌شده با کمک کاربران، توسعه‌دهندگان، تیم‌های امنیتی و … روزبه‌روز تکامل‌یافته و بهتر شود.
این سیستم مدیریت محتوا با انتشار نسخه ۵ کار خود را آغاز کرد.

دروپال سیستم مدیریت محتوا – Drupal CMS

ساختار

به ادعای سازندگان آن، این CMS انعطاف‌پذیر است.
بدون داشتن دانش فنی و با داشتن مقداری اطلاعات از ساختار آن و به کمک افزونه‌هایش، می‌توانید هر مدل سایتی که می‌خواهید را طراحی کنید.
نودها (گره‌ها) در قلب دروپال طراحی‌شده‌اند. نودها یک مجموعه از اطلاعات مربوط به محتوا هستند.
اطلاعات عمومی مثل عنوان، متن، نویسنده، تاریخ ایجاد، طبقه‌بندی، برچسب‌ها و … توسط نودها نگهداری می‌شوند.
اجزای دیگر آن با این نودها ارتباط برقرار کرده و خروجی اطلاعات را نمایش می‌دهند.
درواقع یک کنترل کامل برای مدیریت تمام اجزای سایت را در اختیار شما قرار می‌دهد.
برای هر نود وابسته به نوع آن می‌توان اطلاعات دیگری همچون تصویر، فایل، فیلدهای متنی، فیلدهای انتخابی و … اضافه کرد و آن‌ها را نیز کاملاً مرتبط با نودها کنترل کرد.
ویرایش نودها به‌سادگی و فقط توسط ورود به سیستم قابل انجام است.
در دروپال می‌توانید برای هر نقش کاربری دسترسی دلخواه مشخص کنید.

امنیت

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

ویژگی ها

• ماژولار و قابل توسعه
• دارای حدود ۳۰۰۰ افزونه
• برنامه‌نویسی استاندارد و باکیفیت
• نیاز به منابع کم سرور و منابع نرم‌افزاری
• منبع باز
• قابل‌استفاده برای توسعه‌دهندگان، مدیران، طراحان و تولیدکنندگان محتوا
• پشتیبانی خوب

 

دروپال سیستم مدیریت محتوا – Drupal CMS