Categories
PHP

Laravel 4: Sending Emails

Laravel 4 uses SwiftMailer library behind the stage. They have wrapped the SwiftMailer functionality in elegant and easy to use APIs for delivering emails.

The Mail::send() API is straight forward, it takes these as argument –

# The email template to render. You can pass an array for sending both text and html emails.
# The data array which contains the values for the email template.
# A closure to configure the message. The closure is passed an instance of SwiftMailer and you can use the same set of configuration you can use with SwiftMailer.

Choosing a Mail Transport

Laravel 4 allows easy configuration of the mail transport in app/config/mail.php file. The framework has drivers for smtp, PHP’s mail() function and sendmail. If you have a local smtp server running, choose the smtp driver. Set the host to localhost and port to 25.

Pretend Sending Mail

Laravel4 has a nice feature for testing emails on local machines where you probably don’t have a mail server installed and/or configured. You can switch “pretend” in the above configuration to true or use Mail::pretend(TRUE) before making a call to Mail::send(). This will not try to deliver the mail but make a log in the application log file. You can find the logs files in – “app/storage/logs” directory.

Categories
Bangla PHP

āĻĒāĻŋāĻāχāϚāĻĒāĻŋ ā§Ģ.ā§Ģ – āύāϤ⧁āύ āĻ•āĻŋ āĻāϞ⧋?

āĻ—āϤ ⧍ā§ĻāĻļ⧇ āϜ⧁āύ āĻĒāĻŋāĻāχāϚāĻĒāĻŋ ā§Ģ.ā§Ģ āϰāĻŋāϞāĻŋāϜ āĻĒ⧇āϞ⧇āĻ“ āφāĻĒāĻ—ā§āϰ⧇āĻĄ āĻ•āϰāĻž āĻšāϝāĻŧ⧇ āĻ“āϠ⧇āύāĻŋ āĨ¤ āφāϜ āĻāĻ•āϟ⧁ āφāϗ⧇ āφāĻĒāĻ—ā§āϰ⧇āĻĄ āĻ•āϰ⧇āχ āĻ­āĻžāĻŦāϞāĻžāĻŽ āύāϤ⧁āύ āĻĢāĻŋāϚāĻžāϰāϗ⧁āϞ⧋ āϏāĻŽā§āĻŦāĻ¨ā§āϧ⧇ āϞāĻŋāϖ⧇ āĻĢ⧇āϞāĻŋ āĨ¤ āϤ⧋ āφāϏ⧁āύ āĻĻ⧇āϖ⧇ āύ⧇āχ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āύāϤ⧁āύ āĻĢāĻŋāϚāĻžāϰāϗ⧁āϞ⧋ āĻ•āĻŋ āĻ•āĻŋ āĨ¤

#ā§§ – āĻœā§‡āύāĻžāϰ⧇āϟāϰ

āφāĻŽāϰāĻž āĻĒāĻŋāĻāχāϚāĻĒāĻŋāϤ⧇ āφāχāϟāĻžāϰ⧇āϟāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāϤāĻĻāĻŋāύ Iterator āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāϏ⧇āĻ›āĻŋ āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āύāϤ⧁āύ āφāϏāĻž āĻœā§‡āύāĻžāϰ⧇āϟāϰ āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āφāχāϟāĻžāϰ⧇āĻļāύāϟāĻž āφāϰ⧋ āϏāĻšāĻœā§‡ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āĨ¤

āĻœā§‡āύāĻžāϰ⧇āϟāϰ āφāϏāϞ⧇ āĻ•āĻŋ? āĻœā§‡āύāĻžāϰ⧇āϟāϰ āĻšāĻšā§āϛ⧇ āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āĻŽāϤāχ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĢāĻžāĻ‚āĻļāύ āĻāĻ•āĻŦāĻžāϰ āĻŽāĻžāĻ¤ā§āϰ āĻ­ā§āϝāĻžāϞ⧁ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻœā§‡āύāĻžāϰ⧇āϟāϰ āϝāϤāĻŦāĻžāϰ āϖ⧁āĻļāĻŋ āĻ­ā§āϝāĻžāϞ⧁ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ yield āĻ•āĻŋāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĨ¤ āĻœā§‡āύāĻžāϰ⧇āϟāϰ āĻĨ⧇āϕ⧇ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰāĻž āϏāĻŦ āĻ­ā§āϝāĻžāϞ⧁ āĻāĻ•āϟāĻŋ āϏāĻŋāϕ⧁āϝāĻŧ⧇āĻ¨ā§āϏ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĨāĻžāϕ⧇ āϝ⧇āϟāĻŋ āĻ•āĻŋāύāĻž āφāχāϟāĻžāϰ⧇āϟ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āĻ…āĻ¨ā§āϝāϏāĻŦ āφāχāϟāĻžāϰ⧇āϟāϰ (āϝ⧇āĻŽāύ: āĻā§āϝāĻžāϰ⧇) āĻāϰ āĻŽāϤ āĻ•āϰ⧇āχ (āϝ⧇āĻŽāύ: foreach āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇) āĨ¤ āĻœā§‡āύāĻžāϰ⧇āϟāϰ āϝ⧇āĻšā§‡āϤ⧁ āĻāĻ•āϟāĻŋ āĻāĻ•āϟāĻŋ āĻ•āϰ⧇ āĻ­ā§āϝāĻžāϞ⧁ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇, āϏ⧇āĻšā§‡āϤ⧁ āϏāĻŦ āĻĄāĻžāϟāĻž āĻāĻ• āϏāĻžāĻĨ⧇ āĻā§āϝāĻžāϰ⧇ āϤ⧇ āϰāĻžāĻ–āĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻĒāĻĄāĻŧ⧇ āύāĻž āĨ¤ āĻĢāϞ⧇ āĻŽā§‹āĻŽā§‹āϰ⧀ āϏ⧇āχāĻ­ āĻ•āϰāĻž āϏāĻŽā§āĻ­āĻŦ āĨ¤ āϝ⧇āĻŽāύ, range(0,1000000) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻā§āϝāĻžāϰ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋ āĻāĻ• āĻŽāĻŋāϞāĻŋāϝāĻŧāύ āϏāĻ‚āĻ–ā§āϝāĻžāϰ, āϤāĻžāĻšāϞ⧇ āϤāĻžāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāĻžāϝāĻŧ ā§§ā§Ļā§Ļ āĻŽā§‡āĻ—āĻžāĻŦāĻžāχāϟ āĻŽā§‡āĻŽā§‹āϰ⧀ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇ āĨ¤ āĻāĻ•āχ āĻ•āĻžāϜ āϝāĻĻāĻŋ āĻœā§‡āύāĻžāϰ⧇āϟāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•āϰāĻŋ āϤāĻŦ⧇ āĻĨāĻŋāĻ“āϰ⧇āϟāĻŋāĻ•ā§āϝāĻžāϞāĻŋ āĻ•āĻ–āύ⧋āχ ā§§ āĻ•āĻŋāϞ⧋āĻŦāĻžāχāϟ āĻāϰ āĻŦ⧇āĻļā§€ āĻŽā§‡āĻŽā§‹āϰ⧀ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻĒāĻĄāĻŧāĻŦ⧇ āύāĻž āĨ¤

āϚāϞ⧁āύ āĻœā§‡āύāĻžāϰ⧇āϟāϰ⧇āϰ āϕ⧋āĻĄ āĻāĻ•ā§āϏāĻžāĻŽā§āĻĒāϞ āĻĻ⧇āĻ–āĻŋ –

āφāωāϟāĻĒ⧁āϟ:

#⧍ – finally āĻŦā§āϞāĻ•

āĻĒāĻŋāĻāχāϚāĻĒāĻŋāϤ⧇ āφāĻŽāϰāĻž āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻŋāĻ‚ āĻāϰ āϜāĻ¨ā§āϝ āĻāϤāĻĻāĻŋāύ try..catch āĻŦā§āϞāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāϏ⧇āĻ›āĻŋ āĨ¤ āĻāĻŦāĻžāϰ āφāĻŽāϰāĻž āϏ⧇āχ āϏāĻžāĻĨ⧇ āĻĒāĻžāĻšā§āĻ›āĻŋ āφāϰ⧇āĻ•āϟāĻŋ āύāϤ⧁āύ āĻŦā§āϞāĻ• – finally āĨ¤ āĻāχ āĻŦā§āϞāĻ• āϏāĻŦ āϏāĻŽāϝāĻŧāχ āϰāĻžāύ āĻ•āϰāĻŦ⧇ āĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ āĻĨāĻžāϕ⧁āĻ• āĻŦāĻž āύāĻžāχ āĻĨāĻžāϕ⧁āĻ• āĻāχ āĻŦā§āϞāĻ• āĻĒāĻŋāĻāχāϚāĻĒāĻŋ āĻšā§‹āĻ– āĻŦ⧁āĻœā§‡ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāϟ āĻ•āϰāĻŦ⧇ āĨ¤ āĻāχ āĻŦā§āϞāϕ⧇āϰ āϏ⧁āĻŦāĻŋāϧāĻžāϟāĻž āĻ•āĻŋ? āϧāϰ⧁āύ āφāĻĒāύāĻŋ try āĻŦā§āϞāϕ⧇ āĻāĻ•āϟāĻŋ āĻĄāĻžāϟāĻžāĻŦ⧇āχāϜ āĻ•āĻžāύ⧇āĻ•āĻļāύ āĻ“āĻĒ⧇āύ āĻ•āϰ⧇āĻ›āĻŋāϞ⧇āύ āĨ¤ āĻāϰāĻĒāϰ āĻĒ⧇āϞ⧇āύ āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ āĻāĻŦāĻ‚ āϏ⧇āϟāĻŋāϕ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞ āĻ•āϰāϞ⧇āύ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϐ āĻĄāĻžāϟāĻžāĻŦ⧇āχāϜ āĻ•āĻžāύ⧇āĻ•āĻļāύ? āĻ“āϟāĻž āϤ⧋ āĻŦāĻ¨ā§āϧ āĻ•āϰāĻž āĻĻāϰāĻ•āĻžāϰ, āϤāĻžāχ āύāĻž? āĻāχ āϏ⧁āϝ⧋āĻ—āϟāĻžāχ āφāĻĒāύāĻŋ āĻĒāĻžāĻšā§āϛ⧇āύ finally āĻŦā§āϞāϕ⧇ āĨ¤

āĻĒāĻŋāĻāχāϚāĻĒāĻŋ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞ āĻĨ⧇āϕ⧇āχ āϕ⧋āĻĄ āĻ¸ā§āϝāĻžāĻŽā§āĻĒāϞ āϤ⧁āϞ⧇ āĻĻ⧇āχ –

#ā§Š – āĻĒāĻžāϏāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ āĻšā§āϝāĻžāĻļāĻŋāĻ‚ āĻāĻĒāĻŋāφāχ

āĻĒāĻžāϏāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ āĻšā§āϝāĻžāĻļāĻŋāĻ‚ āϏāĻšāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāχ āĻ­āĻžāĻ°ā§āϏāύ⧇ āĻāϏ⧇āϛ⧇ – password_hash() āĻāĻŦāĻ‚ password_verify() āĨ¤ password_hash āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻĻ⧁āχāϟāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āύāĻŋāϝāĻŧ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ – āĻŸā§‡āĻ•ā§āϏāϟ āĻĒāĻžāϏāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ, āĻāĻŦāĻ‚ āĻšā§āϝāĻžāĻļāĻŋāĻ‚ āĻā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ (āĻ…āύ⧇āĻ•āϗ⧁āϞ⧋ āĻĒā§āϰāĻŋāĻĄāĻŋāĻĢāĻžāχāĻ¨ā§āĻĄ āĻ•āύāĻ¸ā§āϟāĻžāĻ¨ā§āϟ āφāϛ⧇) āĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ:

āφāωāϟāĻĒ⧁āϟ:

#ā§Ē – āĻĄāĻŋāϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏāĻŋāĻ‚

āĻāĻŦāĻžāϰ āĻā§āϝāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āϞāĻŋāϟāĻžāϰ⧇āϞ⧇āϰ āĻŦ⧇āϞāĻžāϝāĻŧāĻ“ āĻĄāĻŋāϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏāĻŋāĻ‚ āĻĢāĻŋāϚāĻžāϰ āϝ⧋āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ –

#ā§Ģ – āĻ•ā§āϞāĻžāϏ āύ⧇āχāĻŽ āϰ⧇āϜ⧁āϞ⧇āĻļāύ

āϧāϰ⧁āύ āφāĻĒāύāĻŋ āϕ⧋āύ āĻāĻ•āϟāĻŋ āύ⧇āχāĻŽāĻ¸ā§āĻĒ⧇āχāϏ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϏ āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇āϛ⧇āύ āĨ¤ āĻāĻ–āύ āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ āϐ āĻ•ā§āϞāĻžāϏ āĻāϰ āύ⧇āχāĻŽāĻ¸ā§āĻĒ⧇āχāϏ āϏāĻš āĻĒ⧁āϰ⧋ āύāĻžāĻŽā§‡āϰ, āϤāĻ–āύ āĻ•āĻŋ āĻ•āϰāĻŦ⧇āύ? āφāϰ āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇ āϝāĻĻāĻŋ use…as āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•ā§āϞāĻžāϏāϟāĻŋāϕ⧇ āĻ…āĻ¨ā§āϝ āύāĻžāĻŽā§‡ āχāĻŽā§āĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻž āĻšāϝāĻŧ āϤāĻŦ⧇ āĻŦā§āϝāĻžāĻĒāĻžāϰāϟāĻŋ āφāϰ⧋ āϜāϟāĻŋāϞ āĻšāϝāĻŧ⧇ āĻĻāĻžāĻĄāĻŧāĻžāϝāĻŧ āĨ¤ āĻāχ āϏāĻŽāĻ¸ā§āϝāĻžāϰ āϏāĻšāϜ āϏāĻŽāĻžāϧāĻžāύ āύāĻŋāϝāĻŧ⧇ āĻāϏ⧇āϛ⧇ āĻ•ā§āϞāĻžāϏ āύ⧇āχāĻŽ āϰ⧇āϜ⧁āϞ⧇āĻļāύ āĨ¤ āϝ⧇āϕ⧋āύ⧋ āĻ•ā§āϞāĻžāϏ⧇ class āĻ•āĻŋāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĢ⧁āϞ āύ⧇āχāĻŽ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāĻŦ⧇ āĻāĻ­āĻžāĻŦ⧇ – MyClass::class

āφāωāϟāĻĒ⧁āϟ:

āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ

āĻ…āĻ¨ā§āϝāĻžāĻ¨ā§āϝ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āĻŽāĻ§ā§āϝ āφāϛ⧇ –

# foreach āϞ⧁āĻĒ⧇ list() āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžāϝāĻŧ
# foreach āϞ⧁āĻĒ⧇ āύāύ-āĻ¸ā§āĻ•ā§āϝāĻžāϞāĻžāϰ (āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻŦāĻž āύāĻžāĻŽā§āĻŦāĻžāϰ āĻŦāĻžāĻĻ⧇āϰ āĻ…āĻ¨ā§āϝ āϟāĻžāχāĻĒ⧇āϰ āĻ­ā§āϝāĻžāϞ⧁) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝāĻžāϝāĻŧ
# OpCache āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĒāĻžāĻ°ā§āĻĢāϰāĻŽā§‡āĻ¨ā§āϏ āĻ āχāĻŽā§āĻĒā§āϰ⧁āĻ­āĻŽā§‡āĻ¨ā§āϟ

Categories
Bangla PHP

āĻĄāĻŋāϜāĻžāχāύ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ – āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻŽā§‡āĻĨāĻĄ

āφāĻĒāĻĄā§‡āϟ:

āϰāĻŋāĻĢāĻžāϤ āĻ­āĻžāχāϝāĻŧ⧇āϰ āϏāĻžāĻœā§‡āĻļāύ āĻ…āύ⧁āϏāĻžāϰ⧇ āĻĻ⧁āĻŸā§‹ āϜāĻŋāύāĻŋāϏ āϝ⧋āĻ— āĻ•āϰāϞāĻžāĻŽ –

# namespace āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ
# instanceof āĻŦā§āϝāĻžāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āύāĻŋāĻļā§āϚāĻŋāϤ āĻšāĻ“āϝāĻŧāĻž āϝ⧇ āϰāĻŋāϕ⧋āϝāĻŧ⧇āĻ¸ā§āϟ āĻ•āϰāĻž āĻ•ā§āϞāĻžāϏ āφāϏāϞ⧇ āĻŽāĻŋāĻĄāĻŋāϝāĻŧāĻž āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āχāϏ āχāĻŽā§āĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰ⧇ āĨ¤

āĻāĻŽāϰāĻžāύ āĻ­āĻžāχāϝāĻŧ⧇āϰ āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ āĻ…āύ⧁āϏāĻžāϰ⧇ āĻĄāĻŋāϜāĻžāχāύ āĻŦāĻžāχ āĻ•āĻ¨ā§āĻŸā§āĻ°ā§āϝāĻžāĻ•ā§āϟ āĻāϰ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āϝ⧋āĻ— āĻ•āϰāϞāĻžāĻŽ āĨ¤


āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻŽā§‡āĻĨāĻĄ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻāϰ āĻ•āĻžāϜ āϤāĻžāϰ āύāĻžāĻŽ āĻĨ⧇āϕ⧇āχ āϏāĻšāĻœā§‡ āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āĨ¤ āĻāχ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ⧇ āĻāĻ•āϟāĻŋ āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻ āĻāĻ•āϟāĻŋ āĻŽā§‡āĻĨāĻĄ āĻĨāĻžāϕ⧇ āϝāĻžāϰ āĻ•āĻžāϜ āĻšāĻšā§āϛ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĻŽāϤ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž āĨ¤ āĻāχ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϗ⧁āϞ⧋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻ•āχ āϧāϰāϪ⧇āϰ āĻšāϝāĻŧ⧇ āĻĨāĻžāϕ⧇ āĨ¤ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏ⧇āĻŦ⧇ āφāĻŽāϰāĻž āĻ­āĻžāĻŦāϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻ•āϟāĻŋ āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟ āĻŽā§āϝāĻžāύ⧇āϜāĻŽā§‡āĻ¨ā§āϟ āϏāϞāĻŋāωāĻļāύ āĻāϰ āĻ•āĻĨāĻž (āϝ⧇āĻŽāύ: āĻ“āϝāĻŧāĻžāĻ°ā§āĻĄāĻĒā§āϰ⧇āϏ, āϜ⧁āĻŽāϞāĻž āĻ•āĻŋāĻ‚āĻŦāĻž āĻĻā§āϰ⧁āĻĒāĻžāϞ) āϝ⧇āĻ–āĻžāύ⧇ āύāĻžāύāĻž āϧāϰāϪ⧇āϰ āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟ āĻĨāĻžāϕ⧇ āĨ¤ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇ āĻ…āĻĄāĻŋāĻ“, āĻ­āĻŋāĻĄāĻŋāĻ“ āĻ•āĻŋāĻ‚āĻŦāĻž āĻĢāĻŸā§‹ āĨ¤ āĻāϗ⧁āϞ⧋āϕ⧇ āĻāĻ• āϏāĻžāĻĨ⧇ āφāĻŽāϰāĻž āĻŽāĻŋāĻĄāĻŋāϝāĻŧāĻž āĻšāĻŋāϏ⧇āĻŦ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĨ¤ āφāĻŦāĻžāϰ āĻĻ⧇āϖ⧁āύ, āĻāχ āĻŽāĻŋāĻĄāĻŋāϝāĻŧāĻžāϗ⧁āϞ⧋āϰ āĻ•āĻŋāϛ⧁ āϏāĻžāϧāĻžāϰāĻŖ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇, āϝ⧇āĻŽāύ: āϏāĻŦ āĻŽāĻŋāĻĄāĻŋāϝāĻŧāĻžāϰāχ āĻāĻ•āϟāĻŋ āĻĒāĻžāĻŦāϞāĻŋāĻ• URL āĻĨāĻžāϕ⧇, āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϞ⧋āϕ⧇āĻļāύ āĻŦā§‹āĻāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻĢāĻžāχāϞ āĻĒāĻžāĻĨ āĻĨāĻžāϕ⧇, āĻŽāĻŋāĻĄāĻŋāϝāĻŧāĻžāϰ āĻĢāĻžāχāϞ āϏāĻžāχāϜ āĻĨāĻžāϕ⧇, āϏ⧇āχ āϏāĻžāĻĨ⧇ āĻĨāĻžāϕ⧇ āϕ⧋āύāϟāĻŋ āϕ⧋āύ āϟāĻžāχāĻĒ⧇āϰ āĻŽāĻŋāĻĄāĻŋāϝāĻŧāĻž āĨ¤ āĻāϰāĻ•āĻŽ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻŽāĻŋāĻĄāĻŋāϝāĻŧāĻž āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āχāϏ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āύāĻŋāĻŦā§‹ āĻāĻŦāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰ āĻ¸ā§āĻŦāϤāĻ¨ā§āĻ¤ā§āϰ āĻŽāĻŋāĻĄāĻŋāϝāĻŧāĻžāϗ⧁āϞ⧋ āĻāχ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āχāϏ āχāĻŽā§āĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰāĻŦ⧇ āĨ¤ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āχāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϗ⧁āϞ⧋āϰ āϏāĻžāϧāĻžāϰāĻŖ āφāϚāϰāĻŖ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ āĨ¤ āϝ⧇āĻŽāύ āφāĻŽāϰāĻž āϏāĻŦ āϗ⧁āϞ⧋ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϕ⧇ āĻŦāĻžāĻ§ā§āϝ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻ•āϟāĻŋ getType() āĻŽā§‡āĻĨāĻĄ āχāĻŽā§āĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰāϤ⧇ āϝ⧇āϟāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāϞ⧇ āĻĻāĻŋāĻŦ⧇ āϐ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϟāĻŋ āϕ⧋āύ āϟāĻžāχāĻĒ⧇āϰ āĻŽāĻŋāĻĄāĻŋāϝāĻŧāĻž āĨ¤ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āχāϏ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĢāϰāĻŽāĻžāϞ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻžāĻ•āϚāĻžāϰ āĻĻāĻžāĻĄāĻŧ āĻ•āϰāĻžāύ⧋āϰ āĻ•āύāϏ⧇āĻĒā§āϟāϟāĻŋ āĻĄāĻŋāϜāĻžāχāύ āĻŦāĻžāχ āĻ•āĻ¨ā§āĻŸā§āĻ°ā§āϝāĻžāĻ•ā§āϟ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĒāϰāĻŋāϚāĻŋāϤ āĨ¤

āĻāϰāĻĒāϰ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻŽāĻŋāĻĄāĻŋāϝāĻŧāĻž āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻ•ā§āϞāĻžāϏ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻŦā§‹ āϝāĻžāϰ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻŽā§‡āĻĨāĻĄ āĻĨāĻžāĻ•āĻŦ⧇ factory() āύāĻžāĻŽā§‡ āĨ¤ āĻāχ āĻŽā§‡āĻĨāĻĄā§‡ āφāĻŽāϰāĻž āϟāĻžāχāĻĒ āĻĒāĻžāϏ āĻ•āϰ⧇ āĻĻāĻŋāϞ⧇ āϏ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϐ āϟāĻžāχāĻĒ⧇āϰ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻĻāĻŋāĻŦ⧇ āĨ¤ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻŽā§‡āĻĨāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦā§‹ āϝāĻžāϤ⧇ āύāϤ⧁āύ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻāϰ āϕ⧋āύ āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āύāĻž āϞāĻžāϗ⧇ āĨ¤ āφāĻŽāϰāĻž āϝāĻžāϤ⧇ āϏāϰāĻžāϏāϰāĻŋ MediaFactory::factory() āĻ•āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āϏ⧇āϜāĻ¨ā§āϝāχ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻŽā§‡āĻĨāĻĄ āĨ¤

āφāĻŽāϰāĻž āĻāĻ–āύ āϖ⧁āĻŦ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻ⧇āĻ–āĻŦā§‹ āĻĒāĻŋāĻāχāϚāĻĒāĻŋ āϤ⧇ –

āĻāĻ–āĻžāύ⧇ āĻĻ⧇āϖ⧁āύ, āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ Media āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āχāϏ āφāϛ⧇ āϝ⧇āϟāĻŋ āĻāĻ•āϟāĻŋ āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻŽā§‡āĻĨāĻĄ āĻĄāĻŋāĻĢāĻžāχāύ āĻ•āϰ⧇āϛ⧇ getType() āĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ Audio, Video āĻāĻŦāĻ‚ Photo āĻ•ā§āϞāĻžāϏ āĻāχ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āχāϏāϕ⧇ āχāĻŽā§āĻĒā§āϞāĻŋāĻŽā§‡āĻ¨ā§āϟ āĻ•āϰ⧇āϛ⧇ āύāĻŋāĻœā§‡āϰ āĻŽāϤ āĻ•āϰ⧇ āĨ¤ MediaFactory āĻ•ā§āϞāĻžāϏ⧇āϰ factory() āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ $type āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āϚāĻžāϝāĻŧ āĨ¤ āϟāĻžāχāĻĒ āĻŦāϞ⧇ āĻĻāĻŋāϞ⧇ āϏ⧇ āϏ⧇āχ āϟāĻžāχāĻĒ⧇āϰ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇ āĨ¤

āĻāĻŦāĻžāϰ āφāĻŽāϰāĻž āĻĻ⧇āĻ–āĻŋ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϕ⧋āĻĄā§‡ āĻāχ āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻŽā§‡āĻĨāĻĄ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦā§‹ –

āĻāĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ MediaFactory āĻāϰ āĻ•āĻžāĻ› āĻĨ⧇āϕ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āϟāĻžāχāĻĒ⧇āϰ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻšā§‡āϝāĻŧ⧇ āύāĻŋāĻšā§āĻ›āĻŋ āĨ¤ āĻāχ āϕ⧋āĻĄā§‡āϰ āφāωāϟāĻĒ⧁āϟāϟāĻž āϕ⧇āĻŽāύ āĻšāĻŦ⧇? āφāϏ⧁āύ āĻĻ⧇āϖ⧇ āύ⧇āχ –

āϤ⧋, āĻāϟāĻžāχ āĻšāϞ⧋ āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āĻĢā§āϝāĻžāĻ•ā§āϟāϰāĻŋ āĻŽā§‡āĻĨāĻĄ āφāĻŽāĻžāĻĻ⧇āϰ āĻĢāϰāĻŽāĻžāϝāĻŧ⧇āĻļ āĻŽāϤ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻĻ⧇āϝāĻŧ 🙂