PHP Quran was created and is maintained by Faiz Shukri. This package allow developer to retrieve quran ayah and translation easily.
PHP 7+/8+ is required. (5.6 is supported in v1.x)
This project can be installed via [Composer]:
$ composer require faizshukri/phpquran
PHP Quran has optional support for Laravel and comes with a Service Provider and Facades for easy integration.
Laravel version starting 5.5+ can use Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider.
Open your Laravel config file config/app.php
and add the following lines.
In the $providers
array add the service providers for this package.
FaizShukri\Quran\QuranServiceProvider::class
Add the facade of this package to the $aliases
array.
'Quran' => FaizShukri\Quran\Facades\Quran::class
Now the Quran Class will be auto-loaded by Laravel.
PHP Quran supports optional configuration for Laravel.
To get started, you'll need to publish the config.
$ php artisan vendor:publish --provider="FaizShukri\Quran\QuranServiceProvider"
This will create a config/quran.php
file in your app that you can modify to set your configuration. Also, make sure you check for changes to the original config file in this package between releases.
There are several config options:
-
storage_path
By default, the app will download and store quran files in
storage/app/quran
directory. You may change the value to your own. However the path will be reside understorage/app
directory. -
translations
Specify translations that you want to make available for use. Make sure you add translation here before use in the code.
-
limit
Default limits per query are
15 ayah
and3 translations
. -
structure
Structure of the data. Default is
minimal
which remove all unnecessary parent.fixed
will make structure more consistent.
PHP Quran also ship a binary file to be used in console. You can access directly from vendor/bin/quran
, or if you want to access it from anywhere, you can install PHP Quran globally and put your composer global directory path to your working environment's $PATH
.
$ composer global require faizshukri/phpquran
use FaizShukri\Quran\Quran;
$quran = new Quran();
$quran->get('1:3');
// ٱلرَّحْمَٰنِ ٱلرَّحِيمِ
$quran->get('1:2,4-6');
// [
// 2 => "ٱلْحَمْدُ لِلَّهِ رَبِّ ٱلْعَٰلَمِينَ",
// 4 => "مَٰلِكِ يَوْمِ ٱلدِّينِ",
// 5 => "إِيَّاكَ نَعْبُدُ وَإِيَّاكَ نَسْتَعِينُ",
// 6 => "ٱهْدِنَا ٱلصِّرَٰطَ ٱلْمُسْتَقِيمَ"
// ]
$quran->translation('en')->get('1:3');
// The Entirely Merciful, the Especially Merciful,
$quran->translation('ar,en')->get('1:3');
// [
// "ar" => "ٱلرَّحْمَٰنِ ٱلرَّحِيمِ",
// "en" => "The Entirely Merciful, the Especially Merciful,"
// ]
$quran->translation('ar,en')->get('1:2,3');
// [
// "ar" => [
// 2 => "ٱلْحَمْدُ لِلَّهِ رَبِّ ٱلْعَٰلَمِينَ",
// 3 => "ٱلرَّحْمَٰنِ ٱلرَّحِيمِ"
// ],
// "en" => [
// 2 => "[All] praise is [due] to Allah, Lord of the worlds -",
// 3 => "The Entirely Merciful, the Especially Merciful,"
// ]
// ]
PHP Quran can be used in console like this.
$ quran surah
# +------------------+-------------------+--------------------+-------------------+
# | All surah |
# +------------------+-------------------+--------------------+-------------------+
# | 1. Al-Faatiha | 30. Ar-Room | 59. Al-Hashr | 87. Al-A'laa |
# | 2. Al-Baqara | 31. Luqman | 60. Al-Mumtahana | 88. Al-Ghaashiya |
# | 3. Aal-i-Imraan | 32. As-Sajda | 61. As-Saff | 89. Al-Fajr |
# ....
$ quran surah 1
# =========== =============
# Surah Al-Faatiha
# =========== =============
# Index 1
# Name Al-Faatiha
# Name (ar) الفاتحة
# Meaning The Opening
# No. Ayah 7
# Start 0
# Type Meccan
# Order 5
# Rukus 1
# =========== =============
$ quran surah 1 2
# ٱلْحَمْدُ لِلَّهِ رَبِّ ٱلْعَٰلَمِينَ
$ quran surah 1 2,4-5 en
# [ 2 ] [All] praise is [due] to Allah, Lord of the worlds -
# [ 4 ] Sovereign of the Day of Recompense.
# [ 5 ] It is You we worship and You we ask for help.
$ quran surah 1 2 ar,en
# [ AR ] ٱلْحَمْدُ لِلَّهِ رَبِّ ٱلْعَٰلَمِينَ
# [ EN ] [All] praise is [due] to Allah, Lord of the worlds -
$ quran surah 1 2-4 ar,en
#
# AR
# ====
#
# [ 2 ] ٱلْحَمْدُ لِلَّهِ رَبِّ ٱلْعَٰلَمِينَ
# [ 3 ] ٱلرَّحْمَٰنِ ٱلرَّحِيمِ
# [ 4 ] مَٰلِكِ يَوْمِ ٱلدِّينِ
#
#
# EN
# ====
#
# [ 2 ] [All] praise is [due] to Allah, Lord of the worlds -
# [ 3 ] The Entirely Merciful, the Especially Merciful,
# [ 4 ] Sovereign of the Day of Recompense.
You can also specify surah by its name. If the surah specified cannot found, it will find the closest one first and will suggest to you if more than a surah is found.
$ quran surah baqara
# =========== ===========
# Surah Al-Baqara
# =========== ===========
# Index 2
# Name Al-Baqara
# Name (ar) البقرة
# Meaning The Cow
# No. Ayah 286
# Start 7
# Type Medinan
# Order 87
# Rukus 40
# =========== ===========
$ quran surah nas 4
# No surah found. Did you mean one of the following?
# [0] Yunus
# [1] Abasa
# [2] An-Nasr
# [3] An-Naas
# > 3
مِن شَرِّ ٱلْوَسْوَاسِ ٱلْخَنَّاسِ
Translation can also be configured via console. It will be saved in the configuration file. (run quran config:path
to see where the file is located).
$ quran translation:add ms.basmeih
# Downloading translation ms.basmeih ...
# ms.basmeih has been added successfully.
$ quran translation:add
# Please specify a translation ID. You can refer to the table below.
#
# +------------+----------+---------------+--------------------+
# | ID | Language | Name | Translator |
# +------------+----------+---------------+--------------------+
# | sq.nahi | Albanian | Efendi Nahi | Hasan Efendi Nahi |
# | sq.mehdiu | Albanian | Feti Mehdiu | Feti Mehdiu |
# | sq.ahmeti | Albanian | Sherif Ahmeti | Sherif Ahmeti |
# | ber.mensur | Amazigh | At Mensur | Ramdane At Mansour |
# | |
# | .... 113 more translations |
# +------------+----------+---------------+--------------------+
$ quran translation:list
# Currently configured translations.
# - en.sahih
# - ms.basmeih
Thanks to the following people and organization for helping out this project;
Name | Link |
---|---|
Tanzil.Net | |
Hussaini Zulkifli | @hussaini |
The PHP Quran code is open-sourced software licensed under the MIT license