Fadak - Programming - PHP Training Reference and CodeIgniter
: 2022-06-22Visitor Count : 3762

PHP Training Reference and CodeIgniter

  1. Tutorials Codeigniter
    1. Documentation
    2. RESTful Resource Handling
    3. Codeigniter & Authentication
    4. Codeigniter 4 Remove Public and Index.php From URL
    6. CRUD
    7. CodeIgniter API
    8. URL Helper & Class
    9. Code Igniter Trick : How to call Function inside a View
    10. Codeigniter tree view build data (category) - Nested Set library (aka MPTT, aka Hierarchy DB Trees)
    11. Good
    12. Other CodeIgniter 4
    13. Other
    14. Jquery Ajax
    15. HMVC
    16. Persian
    17. Run on two servers
  2. PHP-Quick-Scripting-Reference
    1. Chapter 1: Using PHP
      1. Installing a web server
      2. Embedding PHP
      3. Outputting text
    2. Chapter 2: Variables
      1. Defining variables
      2. Data types
      3. Integer type
      4. Floating-point type
      5. Bool type
      6. Null type
      7. Default values
    3. Chapter 3: Operators
      1. Arithmetic operators
      2. Assignment operators
      3. Combined assignment operators
      4. Increment and decrement operators
      5. Comparison operators
      6. Logical operators
      7. Bitwise operators
      8. Operator precedence
      9. Additional logical operators
    4. Chapter 4: String
      1. String concatenation
      2. Delimiting strings
      3. Heredoc strings
  3. Tutorials PHP
    1. PHP language frameworks
    2. Environment Variables in Windows for PHP
    3. Working with strings in PHP
    4. Cheatsheet for PHP
    5. PDO Tutorial - Comparison PDO & MYSQL & MYSQLI
    6. Online PHP functions
    7. Algorithm
    8. include vs. require
    9. Constructor (مفهوم سازنده)
    10. Property Visibility
    11. Best Chart Generation Options with PHP
    12. Multilingual & Content Negotiation
    13. RSS Feed and XML
    14. Remove Specific Class And Attributes From Html Tags
    15. Encoding and Decoding Encrypted PHP
    16. Variables & Array
    17. Как включить логи php
  4. Awesome PHP
    1. Contributing and Collaborating
      1. Composer Repositories
      2. Dependency Management
      3. Dependency Management Extras
      4. Frameworks
      5. Framework Extras
      6. Content Management Systems (CMS)
      7. Components
      8. Micro Frameworks
      9. Micro Framework Extras
      10. Routers
      11. Templating
      12. Static Site Generators
      13. HTTP
      14. Scraping
      15. Middlewares
      16. URL
      17. Email
      18. Files
      19. Streams
      20. Dependency Injection
      21. Imagery
      22. Testing
      23. Continuous Integration
      24. Documentation
      25. Security
      26. Passwords
      27. Code Analysis
      28. Code Quality
      29. Static Analysis
      30. Architectural
      31. Debugging and Profiling
      32. Build Tools
      33. Task Runners
      34. Navigation
      35. Asset Management
      36. Geolocation
      37. Date and Time
      38. Event
      39. Logging
      40. E-commerce
      41. PDF
      42. Office
      43. Database
      44. Migrations
      45. NoSQL
      46. Queue
      47. Search
      48. Command Line
      49. Authentication and Authorization
      50. Markup
      51. Strings
      52. Numbers
      53. Filtering and Validation
      54. API
      55. Caching
      56. Data Structure and Storage
      57. Notifications
      58. Deployment
      59. Internationalisation and Localisation
      60. Serverless
    2. Configuration
      1. Third Party APIs
      2. Extensions
      3. Miscellaneous
  5. Software
    1. PHP Installation
    2. Development Environment
    3. Virtual Machines
    4. Text Editors and IDEs
    5. Web Applications
    6. Infrastructure
  • Resources
    1. PHP Websites
    2. Other Websites
    3. PHP Books
    4. Other Books
    5. PHP Videos
    6. PHP Podcasts
    7. PHP Reading
    8. PHP Internals Reading
    9. PHP Magazines
  • Awesome CodeIgniter Awesome
    1. Complex
    2. CMS
    3. Core
    4. Hooks
    5. Libraries
    6. Model
    7. Third Party
    8. CRUD
    9. Templates
    10. Web Services
    11. ORM
    12. Realtime
    13. User Guide Translations
    14. Useful Websites
    15. Community

  • Tutorials Codeigniter

    Routing in Multilanguage (first segment is ignored)

    i18n Multi language Library Helper · bcit-ci/CodeIgniter Wiki · GitHub

    CodeIgniter 2.1 internationalization i18n · bcit-ci/CodeIgniter Wiki · GitHub

    Routes in CodeIgniter 4 - New Myth Media Blog



    Query Builder Class — CodeIgniter 4.0.4 documentation

    Using CodeIgniter’s Model — CodeIgniter 4.0.4 documentation

    Localization — CodeIgniter 4.0.4 documentation

    php - How to set proper codeigniter base url? - Stack Overflow

    php - url codeigniter multilanguage for all pages - Stack Overflow

    URI Routing — CodeIgniter 4.0.4 documentation

    Form Helper — CodeIgniter 4.0.4 documentation


    CodeIgniter Documentation && CodeIgniter4 User Guide

    Controller Filters — CodeIgniter4 4.0.0-alpha.4 documentation

    Services — CodeIgniter4 4.0.0-alpha.4 documentation

    News section — CodeIgniter4 4.0.0-alpha.4 documentation

    Using CodeIgniter’s Model — CodeIgniter4 4.0.0-alpha.4 documentation

    Localization — CodeIgniter4 4.0.0-alpha.4 documentation

    CodeIgniter4 User Guide — CodeIgniter4 4.0.0-alpha.4 documentation

    Handling Multiple Environments — CodeIgniter4 4.0.0-beta.2 documentation  .env

    Query Helper Methods — CodeIgniter 3.1.9 documentation

    RESTful Resource Handling

    Representational State Transfer (REST) is an architectural style for distributed application.


    // Equivalent to the following:
    $routes->get('photos/new', 'Photos::new');
    $routes->post('photos', 'Photos::create');
    $routes->get('photos', 'Photos::index');
    $routes->get('photos/(:segment)', 'Photos::show/$1');
    $routes->get('photos/(:segment)/edit', 'Photos::edit/$1');
    $routes->put('photos/(:segment)', 'Photos::update/$1');
    $routes->patch('photos/(:segment)', 'Photos::update/$1');
    $routes->delete('photos/(:segment)', 'Photos::delete/$1');

    Read more: RESTful Resource Handling

    Codeigniter & Authentication

    GitHub - divpusher/codeigniter4-auth: A simple authentication library for CodeIgniter 4.


    Download the package and place the Auth folder in app/ThirdParty/.
    Open app/Config/Autoload.php and add to autoload like this:
    $psr4 = [
    'Config' => APPPATH . 'Config',
    'App' => APPPATH,
    'Auth' => APPPATH . 'ThirdParty/Auth',

    Set up the email in app/Config/Email. Fill the $fromEmail and $fromName as well! I suggest you to use mailtrap.io for local development.
    Enable CSRF in app/Config/Filters.
    Make sure that your database is set in .env file or in app/Config/Database.php. Install the users table by running the following command in your project root:
    php spark migrate
    Visit /register on your local server to begin.



    GitHub - lonnieezell/codigniter-shield: Authentication and Authorization for CodeIgniter 4

    GitHub - lonnieezell/myth-auth: One-stop Auth package for CodeIgniter 4

    Codeigniter 4 Remove Public and Index.php From URL

    Step 1: On the app/config/app.php file
    public $baseURL = 'http://localhost:8080';
    public $baseURL = 'http://localhost/your_project_name/';

    Step 2: In the app.php file:
    public $uriProtocol = 'REQUEST_URI';
    public $uriProtocol = 'PATH_INFO';

    Step 3: Change In index.php
    Edit index.php the following line:
    $pathsPath = FCPATH . '../app/Config/Paths.php';
    change to
    $pathsPath = FCPATH . 'app/Config/Paths.php';

    Step 4:
    Move index.php and .htaccess to your root project directory.


    Edit .env the following line:

    CI_ENVIRONMENT = production
    production or development


    CodeIgniter 4 First Crud Example Tutorial

    CodeIgniter API

    CodeIgniter v4.0.0 API

    URL Helper & Class

    // http://mywebsite.com/en/about/my_work


    // http://mywebsite.com/css/styles.css

    Working with URIs — CodeIgniter4 4.0.0-alpha.4 documentation

    URI Routing — CodeIgniter 3.1.9 documentation

    URI Class — CodeIgniter 3.1.9 documentation

    Working with RESTful Services in CodeIgniter

    Code Igniter Trick : How to call Function inside a View

    Code Igniter is MVC, that a thing that all people know.
    That make it is a bad idea to call a function from controller or model.

    The only function that available is the one from helper.
    But you can use a function inside a model actually :D.

    Okey, lets explore those choiches :

    I would like to answer this question as this comes all times up in searches --

    You can call a controller method in view, but please note that this is not a good practice in any MVC including codeigniter.

    Your controller may be like below class --

    $CI =& get_instance();
    $CI->abc($id) ;

    Using Function From Helper

    You just need to load the helper in any place before call the function needed.
    You can call it inside your controller, model or view.
    The only limitation is you cannot use $this on any function of helper.–> Create a helper inside your “application/helper” folder. Eg : myhelpername_helper.php
    –> Create the function inside the helper,
    eg : function my_function(){ echo ‘Hi’; }
    –> inisiate it inside your view (or your controller) : $this->load->helper(‘myhelpername’);
    –> Call the function. Eg : my_function();
    Remember not to use “$this->my_function();” because helper is off OOP side of your code.
    Using Function From Model
    The bright-side of this option is you can use “$this”, means all variable of CI object is available.
    –> Remember to inisiate the model in your controller.
    –> Say your model is “mymodelname_model.php” and the function is “mymodelname”, you can call it inside your view like this :

    You can call a controller function with AJAX on your view. In this case, I'm using the jQuery library to make the call

    php - How to call codeigniter controller function from view - Stack Overflow

    Codeigniter tree view build data (category) - Nested Set library (aka MPTT, aka Hierarchy DB Trees)


    php 5.6 - Algorithm for tree data in php codeigniter - Stack Overflow

    php - Parent - Child - Grand Child category Markup in Codeigniter view - Stack Overflow

    Multi Level Nested Category System in Codeigniter and MySql - My Programming Tutorials

    php - codeigniter tree view build data - Stack Overflow

    PHP Codeigniter 3 - Create Dynamic Tree View using Bootstrap Treeview JS

    Infinite dynamic Multi-level nested category with Codeigniter and MySQL - Roy Tutorials

    Infinite dynamic Multi-level nested category with PHP and MySQL - Roy Tutorials

    Other CodeIgniter 4

    Alex Lancer

    Crypters Infotech - YouTube

    The developer API | Publons

    Academia Journal of Scientific Research | Publons

    codeigniter 4 - YouTube

    How to get current url with query string in codeigniter?


    php - create parent and its child tree in codeigniter - Stack Overflow

    orm - Codeigniter 2 + Datamapper ORM: списки смежности, как установить отношение модели для него? - Qaru

    php - Mutlilevel page list in CodeIgniter - Code Review Stack Exchange

    php 5.6 - Algorithm for tree data in php codeigniter - Stack Overflow

    TypeError: Too few arguments in function  

    Jquery Ajax

    JQuery Ajax Request Example in Codeigniter

    php - Codeigniter & jquery Ajax - Stack Overflow

    php - Сегмент направления Codeigniter - Qaru


    CodeIgniter HMVC

    How to work with controllers in CodeIgniter

    php - Calling a Controller function in another Controller in CodeIgniter - Stack Overflow

    Codeigniter : calling a method of one controller from other - Stack Overflow


    MahdiMajidzadeh/Codeigniter-Persian: A Codeigniter library to work with Persian characters

    Run on two servers

    Configure CodeIgniter to run on two servers | Libraries & Helpers | ExpressionEngine

    Is it possible to call a controller from another controller in CodeIgniter? - Quora


    Chapter 1: Using PHP

    Installing a web server

    To view PHP code in a browser the code first has to run a distribution of the popular Apache web server called XAMPP or usbwebserver which comes pre-installed with PHP, Perl and MySQL.

    Embedding PHP

    PHP code can be embedded anywhere in a web document in one of four different ways. The standard notation is to delimit the code by “”. This is called a PHP
    code block, or just a PHP block.

    <? = php


    Outputting text

    Keep in mind that text output will only be visible on the web page if it is located within the HTML body element.

    <? = php
    echo "Hello World";
    print "Hello World"


    Comments are used to insert notes into the code and will have no effect on the parsing of the script. PHP has the two standard C++ notations for single-line (//) and multi-line
    (/* */) comments. The Perl comment notation (#) may also be used to make single-line comments.

    <? = php

    // single-line comment
    # single-line comment
    /* multi-line
    comment */

    Chapter 2: Variables

    Defining variables

    A variable starts with a dollar sign ($) followed by an identifier, which is the name of the variable.


    A value can be assigned to a variable by using the equals sign, or assignment operator (=). The variable then becomes defined or initialized.

    $myVar = 10;

    Data types

    PHP is a variable’s data type will change automatically to be able to hold the value it is assigned.

    $myVar = 1; // int type
    $myVar = 1.5; // float type

    Data Type  = Category = Description
    int = Scalar = Integer
    float = Scalar = Floating-point number
    bool = Scalar = Boolean value
    string = Scalar = Series of characters
    array = Composite = Collection of values
    object = Composite = User-defined data type
    resource = Special = External resource
    callable = Special = Function or method
    null = Special = No value

    Integer type

    An integer is a whole number. They can be specified in decimal (base 10), hexadecimal $myInt = 1234; // decimal number

    $myInt = 0b10; // binary number (2 decimal)
    $myInt = 0123; // octal number (83 decimal)
    $myInt = 0x1A; // hexadecimal number (26 decimal)(base 16), octal (base 8) or binary (base 2) notation.

    Floating-point type

    The float or floating-point type can store real numbers. These can be assigned using either decimal or exponential notation.

    $myFloat = 1.234;
    $myFloat = 3e2; // 3*10^2 = 300

    Commonly can hold approximately 14 decimal digits and a maximum decimal value of 1.8x10 308 .

    Bool type

    The bool type can store a Boolean value, which is a value that can only be either true or false. These values are specified with the true and false keywords.

    $myBool = true;

    Null type

    The case-insensitive constant null is used to represent a variable with no value. Such a variable is considered to be of the special null data type.

    $myNull = null; // variable is set to null

    If evaluated as a bool it becomes false, as a number it becomes zero (0), and as a string it becomes an empty string ("").

    $myInt = $myNull + 0; // numeric context (0)
    $myBool = $myNull == true; // bool context (false)
    echo $myNull; // string context ("")

    Default values

    In PHP it is possible to use variables that have not been assigned a value. Such undefined variables will then automatically be created with the value null.

    echo $myUndefined; // variable is set to null

    Chapter 3: Operators

    Operators are used to operate on values. They can be grouped into five types: arithmetic, assignment, comparison, logical and bitwise operators.

    Arithmetic operators

    The arithmetic operators include the four basic arithmetic operations, as well as the modulus operator (%) which is used to obtain the division remainder.

    $x = 4 + 2; // 6 // addition
    $x = 4 - 2; // 2 // subtraction
    $x = 4 * 2; // 8 // multiplication
    $x = 4 / 2; // 2 // division
    $x = 4 % 2; // 0 // modulus (division remainder)

    Assignment operators

    The second group is the assignment operators. Most importantly, the assignment operator (=) itself, which assigns a value to a variable.

    Combined assignment operators

    A common use of the assignment and arithmetic operators is to operate on a variable and then to save the result back into that same variable. These operations can be shortened
    with the combined assignment operators.

    $x = 0;
    $x += 5; // $x = $x+5;
    $x -= 5; // $x = $x-5;
    $x *= 5; // $x = $x*5;
    $x /= 5; // $x = $x/5;
    $x %= 5; // $x = $x%5;

    Increment and decrement operators

    Another common operation is to increment or decrement a variable by one. This can be
    simplified with the increment (++) and decrement (−−) operators.

    $x++; // $x += 1;
    $x−−; // $x -= 1;

    Both of these operators can be used either before or after a variable.

    $x++; // post-increment
    $x−−; // post-decrement
    ++$x; // pre-increment
    −−$x; // pre-decrement

    The result on the variable is the same whichever is used. The difference is that
    the post-operator returns the original value before it changes the variable, while the
    pre-operator changes the variable first and then returns the value.

    $x = 5; $y = $x++; // $x=6, $y=5
    $x = 5; $y = ++$x; // $x=6, $y=6

    Comparison operators

    The comparison operators compare two values and return either true or false. They are
    mainly used to specify conditions, which are expressions that evaluate to either true
    or false.

    $x = (2 == 3); // false // equal to
    $x = (2 != 3); // true // not equal to
    $x = (2 <> 3); // true // not equal to (alternative)
    $x = (2 === 3); // false // identical
    $x = (2 !== 3); // true // not identical
    $x = (2 > 3); // false // greater than
    $x = (2 < 3); // true // less than
    $x = (2 >= 3); // false // greater than or equal to
    $x = (2 <= 3); // true // less than or equal to

    The identical operator (===) is used for comparing both the value and data type of
    the operands. It returns true if both operands have the same value and are of the same
    type. Likewise, the not identical operator (!==) returns true if the operands do not have
    the same value or are not of the same type. Put another way, the equality operators will
    perform type conversions, whereas the identical operators will not.
    $x = (1 == "1"); // true (same value)
    $x = (1 === "1"); // false (different types)

    Logical operators

    The logical operators are often used together with the comparison operators. Logical and
    (&&) evaluates to true if both the left and right side are true, and logical or (||) evaluates to
    true if either the left or right side is true. The logical not (!) operator is used for inverting
    a Boolean result. Note that for both “logical and” and “logical or” the right side of the
    operator will not be evaluated if the result is already determined by the left side.

    $x = (true && false); // false // logical and
    $x = (true || false); // true // logical or
    $x = !(true); // false // logical not

    Bitwise operators

    The bitwise operators can manipulate binary digits of numbers. For example, the xor
    operator (^) turn on the bits that are set on one side of the operator, but not on both sides.

    $x = 5 & 4; // 101 & 100 = 100 (4) // and
    $x = 5 | 4; // 101 | 100 = 101 (5) // or
    $x = 5 ^ 4; // 101 ^ 100 = 001 (1) // xor (exclusive or)
    $x = 4 << 1; // 100 << 1 =1000 (8) // left shift
    $x = 4 >> 1; // 100 >> 1 = 10 (2) // right shift
    $x = ~4; // ~00000100 = 11111011 (-5) // invert

    These bitwise operators have shorthand assignment operators, just like the
    arithmetic operators.

    $x=5; $x &= 4; // 101 & 100 = 100 (4) // and
    $x=5; $x |= 4; // 101 | 100 = 101 (5) // or
    $x=5; $x ^= 4; // 101 ^ 100 = 001 (1) // xor
    $x=5; $x <<= 1; // 101 << 1 =1010 (10)// left shift
    $x=5; $x >>= 1; // 101 >> 1 = 10 (2) // right shift

    Operator precedence

    In PHP, expressions are normally evaluated from left to right. However, when an
    expression contains multiple operators, the precedence of those operators decides the
    order in which they are evaluated.
    Pre Operator
    1 ++ −−
    2 ~ − (unary)
    3 !
    4 * / %
    5 + − (binary)
    6 << >>
    7 < <= > >= <>
    8 == != === !==
    9 &10 ^
    11 |
    12 &&
    13 ||
    14 = op=
    15 and
    16 xor
    17 or

    For example, logical and (&&) binds weaker than relational operators, which in turn
    bind weaker than arithmetic operators.

    $x = 2+3 > 1*4 && 5/5 == 1; // true

    To make things clearer, parentheses can be used to specify which part of the
    expression will be evaluated first. Parentheses have the highest precedence of all

    $x = ((2+3) > (1*4)) && ((5/5) == 1); // true

    Additional logical operators

    In the precedence table make special note of the last three operators: and, or and xor.
    The and and or operators work in the same way as the logical && and || operators. The
    only difference is their lower level of precedence.

    // Same as: $a = (true && false);
    $a = true && false; // $a is false
    // Same as: ($a = true) and false;
    $a = true and false; // $a is true

    The xor operator is a Boolean version of the bitwise ^ operator. It evaluates to true
    if only one of the operands are true.

    $a = (true xor true); // false

    Chapter 4: String

    A string is a series of characters that can be stored in a variable. In PHP, strings are
    typically delimited by single quotes.
    $a = 'Hello';

    String concatenation

    PHP has two string operators. The dot symbol is known as the concatenation operator
    (.) and combines two strings into one. It also has an accompanying assignment operator
    (.=), which appends the right-hand string to the left-hand string variable.
    $b = $a . ' World'; // Hello World
    $a .= ' World'; // Hello World

    Delimiting strings

    PHP strings can be delimited in four different ways. There are two single-line notations:
    double-quote (" ") and single-quote (' '). The difference between them is that variables
    are not parsed in single-quoted strings whereas they are parsed in double-quoted strings.
    $c = 'World';
    echo "Hello $c"; // "Hello World"
    echo 'Hello $c'; // "Hello $c"
    Single-quoted strings tend to be preferred unless parsing is desired, mainly because
    string parsing has a very small performance overhead. However, double-quoted strings
    are considered easier to read, which makes the choice more a matter of preference.
    In addition to single-quoted and double-quoted strings, there are two multi-line
    notations: heredoc and nowdoc. These notations are mainly used to include larger
    blocks of text.

    Heredoc strings

    The heredoc syntax consists of the <<< operator followed by an identifier and a new line.
    The string is then included followed by a new line containing the identifier in order to
    close the string. Variables are parsed inside of a heredoc string, just as with double-quoted
    $s = <<<LABEL
    Heredoc (with parsing)
    Nowdoc strings
    The syntax for the nowdoc string is the same as for the heredoc string, except that the
    initial identifier is enclosed in single-quotes. Variables will not be parsed inside
    a nowdoc string.
    $s = <<<'LABEL'
    Nowdoc (without parsing)
    Escape characters
    Escape characters are used to write special characters, such as backslashes or
    double-quotes. A table of the escape characters available in PHP can be seen below.

    Character Meaning
    \n    newline
    \t     horizontal tab
    \r    carriage return
    \f     form feed
    \$    dollar sign
    \v    vertical tab
    \'     single quote
    \e    escape
    \"    double quote
    \\    backslash

    For example, line breaks are represented with the escape character “\n” in text.
    $s = "Hello\nWorld";
    Note that this character is different from the
    HTML tag, which creates line
    breaks on web pages.
    echo "Hello

    When using the single-quote or nowdoc delimiter the only escape characters that
    work are the backslash (\\) and single-quote (\') characters.
    $s = 'It\'s'; // "It's"
    Escaping the backslash is only necessary before a single-quote or at the end of
    the string.
    Character reference
    Characters within strings can be referenced by specifying the index of the desired
    character in square brackets after the string variable, starting with zero. This can be used
    both for accessing and modifying single characters.
    $s = 'Hello';
    $s[0] = 'J';
    echo $s; // "Jello"
    The strlen function retrieves the length of the string argument. This can for example
    be used to change the last character of a string.
    $s[strlen($s)-1] = 'y';
    echo $s; // "Jelly"
    String compare
    The way to compare two strings is simply by using the equal to operator. This will not
    compare the memory addresses, as in some other languages.
    $a = 'test';
    $b = 'test';
    $c = ($a == $b); // true

    Chapter 5: Arrays ■ 17
    Chapter 6: Conditionals ■ 21
    Chapter 7: Loops ■ 25
    Chapter 8: Functions ■ 29
    Chapter 9: Class ■ 35
    Chapter 10: Inheritance ■ 39
    Chapter 11: Access Levels ■ 43
    Chapter 12: Static ■ 47
    Chapter 13: Constants ■ 51
    Chapter 14: Interface ■ 55
    Chapter 15: Abstract ■ 59
    Chapter 16: Traits ■ 61
    Chapter 17: Importing Files ■ 63
    Chapter 18: Type Hinting ■ 67
    Chapter 19: Type Conversions ■ 69
    Chapter 20: Variable Testing ■ 73
    Chapter 21: Overloading ■ 77
    Chapter 22: Magic Methods ■ 81
    Chapter 23: User Input ■ 87
    Chapter 24: Cookies ■ 93
    Chapter 25: Sessions ■ 95
    Chapter 26: Namespaces ■ 97
    Chapter 27: References ■ 103
    Chapter 28: Advanced Variables ■ 107
    Chapter 29: Error Handling ■ 111
    Chapter 30: Exception Handling ■ 117

    Tutorials PHP

    PHP language frameworks

    Laravel, Symfony, Yii, CodeIgniter, CakePHP - Анализ - Google Trends

    آموزش yii framework 2 - مکتب خونه

    The Best PHP Frameworks for Web Development
    1. Laravel
    2. CodeIgniter
    3. Symfony
    4. Zend
    5. Yii
    6. CakePHP
    Other: Laravel, Symfony, CodeIgniter, CakePHP, Phalcon, Yii 2, Zend Framework, FuelPHP, Slim, PHPixie

    — Yii2 популярен только в РФ (снг с трендом спада), устаревший и велосипедный местами
    — более популярный, специалистов больше.
    — есть много наработок, готового кода и т.д.
    — разработка быстрее, но менее гибкая.
    — это микрофреймворк, по этому есть большая гибкость в разработке.
    — по той же причине разработка дольше, хотя если сайт не сложный Вы этого не почувствуете.
    — после возрождения CodeIgniter очень быстро развивается (по крайней мере так говорят).

    Environment Variables in Windows for PHP

    Environment variables in Windows are queued by percent (%) characters.

    Edit the system environment variables:

    rundll32 sysdm.cpl,EditEnvironmentVariables

    Environment variables -> New ...
    in command line
    echo %PATH%
    php -S localhost:4000
    New Folder "www" in C:\Users\nameuser
    In browser "http://localhost:4000/www/"

    $phrase = "Giraffe Academy";
    $phrase[0] = "B";
    echo $phrase; // Biraffe Academy

    $num = 10;
    $num --;
    echo $num;

    if($phrase && $num)

    if($phrase || $num)

    Working with strings in PHP


    set_time_limit (0);
    Print Array

    $a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
    print_r ($a);

    print_r — Prints human-readable information about a variable

    $a = array(1, 2, array("a", "b", "c"));

    var_dump — Dumps information about a variable

    $a = array (1, 2, array ("a", "b", "c"));

    var_exportOutputs or returns a parsable string representation of a variable

    $text= strip_tags($text, '');

    کار با تگ‌ها در HTML

    $dom = new DomDocument;
    $dom->preserveWhiteSpace = false;
    $divs = $dom->getElementsByTagName('dd');
    foreach ($divs as $div) {
    echo $ii += 1;
        echo $div->nodeValue . "\n";

    Create array from the contents of

    tags in php - Stack Overflow

      DOMDocument (with DOMXPath) 

    Cheatsheet for PHP

    PHP Arithmetic Operations :: pow() Cheatsheet for PHP 7.2.0

    HTML Cheat Sheet | OverAPI.com

    BlueShoes: PHP Cheat Sheet

    20 Must Have PHP Cheat Sheet for Every Developers

    PDO Tutorial - Comparison PDO & MYSQL & MYSQLI

    Introduction to PHP PDO

    PHP MySQL: Querying Data from Database

    Select Statements with PDO – Must Be Built

    Online PHP functions

    Online strip_tags() function - Online PHP functions

    PHP Online Function Tester

    OnlinePHPFunctions - Test PHP functions online

    PHPTESTER - Test PHP code online

    execute PHP online - functions-online (русский)

    PHP Functions Online - WritePHPOnline

    PHP Functions – Quickly test PHP calls within your browser


    Category:Trees (graph theory) - Wikipedia

    n-ary-tree Archives - GeeksforGeeks

    Depth of an N-Ary tree - GeeksforGeeks

    Number of children of given node in n-ary Tree - GeeksforGeeks

    Decision tree learning - Wikipedia

    N  Ary Trees Data Structures - Stack Overflow

    Brodal queue - Wikipedia

    Number of children of given node in n-ary Tree - GeeksforGeeks

    K-ary Heap - GeeksforGeeks

    k-ary tree - Wikipedia

    include vs. require

    در صورت عدم وجود فایل مورد نظر برای فراخوانی:

    فرمان include فقط یک warning می‌دهد و بقیه کد‌ها را می‌خواند اما فرمان require یک error می‌دهد و آن صفحه موقف می‌شود.

    Constructor (مفهوم سازنده)

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

    سازنده نوع به خصوصی از یک متد در کلاس می‌باشد و زمانی که نمونه‌ای از کلاس ایجاد شود، به صورت خودکار فراخوانی می‌گردد. سازنده برای مقدار دهی اولیه شی و تخصیص حافظه به یک کلاس مورد استفاده قرار می‌گیرد. زمانی که نمونه یا شیئ‌ای از کلاس ایجاد شود، فیلدهای خصوصی(Private) کلاس نیز مقداردهی اولیه می‌شوند. وقتی که ما سازنده را برای کلاس ایجاد نکنیم، کامپایلر به صورت اتوماتیک، یک سازنده پیش فرض برای کلاس ایجاد می‌کند. نام سازنده همیشه هم نام کلاس است.

    مفهوم سازنده (Constructor)

    انواع سازنده‌ها
    -سازنده پیش فرض(Default)
    -سازنده پارامتردهی شده (Parameterized)
    -سازنده ایستا(Static)
    -سازنده خصوصی (Private)
    سازنده پیش فرض(Default)
    به سازنده‌ای می‌گویند که هیچ نوع پارامتری برای آن تعریف نشده باشد به عبارت دیگر بدون پارامتر است. این سازنده مقادیر مشابه در هر نمونه(instance) از کلاس را مقدار دهی می‌کند.
    سازنده پارامتردهی شده (Parameterized)
    سازنده‌ای است که حداقل یک پارامتر دارد. با استفاده از این نوع سازنده می‌توانیم هر نمونه از کلاس را با مقادیر متفاوت مقدار دهی کنیم.
    سازنده ایستا(Static)
    سازنده استاتیک برای مقدار دهی هر نوع داده استاتیک از کلاس یا انجام هر عملی(متد) که باید یک بار اجرا شود، مورد استفاده قرار می‌گیرد. سازنده استاتیک به صورت خودکار و قبل از اولین نمونه سازی از کلاس یا هر داده استاتیک فراخوانی می‌شود. این سازنده یک بار برای هر تعداد نمونه کلاس ایجاد می‌شود.

    نکات کلیدی سازنده استاتیک
    تنها یک سازنده استاتیک می‌تواند در کلاس ایجاد شود.
    سازنده استاتیک هیچ نوع پارامتری نمی‌گیرد زیرا به طور خودکار توسط CLR یا access modifier فراخوانی می‌شود.
    این سازنده به طور خودکار و قبل از اینکه اولین نمونه کلاس ایجاد شود فراخوانی می‌شود.
    نمی توان سازنده استاتیک را به طور مستقیم فراخوانی کرد.
    چه زمانی از سازنده استاتیک استفاده می‌شود؟
    سازنده استاتیک زمانی که کلاس‌های wrapper را برای کدهای مدیریت نشده ایجاد می‌کنید مورد استفاده قرار می‌گیرد. همچنین می‌توانید آن را زمانی که از فایل Log استفاده می‌کنید مورد استفاده قرار دهید و سازنده برای نوشتن ورودی‌ها بکار گرفته شود.
    سازنده خصوصی (Private)
    سازنده Private یک سازنده به خصوص است که به طور کلی در کلاسی مورد استفاده قرا می‌گیرد که فقط شامل تنها اعضای استاتیک باشد. اگر کلاسی فقط سازنده خصوصی داشته و هیچ نوع سازنده عمومی نداشته باشد در این حالت، امکان ایجاد نمونه جدید از کلاس وجود ندارد. در واقع private constructor از ایجاد نمونه سازی کلاس جلوگیری می‌کند. اما اگر بخواهید یک نمونه از کلاسی ایجاد کنید که سازنده خصوصی دارد، باید یک سازنده عمومی همراه با سازنده خصوصی ایجاد کنید.

    آموزش متد جادویی construct

    Property Visibility

    public: در همه جا

    protected: تنها در کلاس‌های فرزند قابل فراخوانی

    private: تنها در کلاس اصلی قابل دسترس

    PHP: Visibility - Manual

    شی گرایی در PHP و سطوح دسترسی و ارث بری - هیتوس

    MegaWeb| تفاوت بین public، private و protected در php

    Best Chart Generation Options with PHP

    PHP Line Charts & Graphs | CanvasJS

    PHP Charts & Graphs - FusionCharts

    4 Best Chart Generation Options with PHP Components — SitePoint

    Multilingual & Content Negotiation

    Content Negotiation in CodeIgniter 4 - New Myth Media Blog

    Docs: hreflang & Content Language Tags | TechnicalSEO.com

    seo - How to make Google recognize language for a multilingual website? - Webmasters Stack Exchange

    language detection by subdomain

    PHP Master | Multi-Language Support in CodeIgniter

    GitHub - waqleh/codeigniter-language-in-url-internationalization: Language in URL:

    RSS Feed and XML

    Build an RSS 2.0 Feed with CodeIgniter

    Article Central RSS

    GitHub - Mitaka777/ci-sitemap: A simple sitemap generator for CodeIgniter

    CodeIgniter Forums - Best Way To Add Sitemap

    frameworks - Sitemap generation with Codeigniter - Stack Overflow

    Remove Specific Class And Attributes From Html Tags

    HTML Sanitizer: Remove unsafe tags and attributes from HTML code - PHP Classes

    HTML Purifier Live Demo

    How To Remove Specific Class And Attributes From Html Tags Using PHP?

    Encoding and Decoding Encrypted PHP

    Hash: online hash value calculator

    CrackStation - Online Password Hash Cracking - MD5, SHA1, Linux, Rainbow Tables, etc.

    Variables & Array

    Passing variables to all views.

    PHP array_push() Append Elements to an Array -- EndMemo

    CodeIgniter Forums - How to store array values in a foreach loop

    arrays - CodeIgniter: global variables in a controller - Stack Overflow

    Как включить логи php

    Включить логи php с помощью файла .htaccess, простой вариант:

    php_value display_errors on
    php_value display_startup_errors on

    Включить логи php с помощью файла .htaccess, расширенный вариант:

    php_flag ignore_repeated_errors off
    php_flag ignore_repeated_source off
    php_flag track_errors on
    php_flag display_errors on
    php_flag display_startup_errors on
    php_flag log_errors on
    php_flag mysql.trace_mode on
    php_value error_reporting -1
    php_value error_log /path/to/site/php-errors.log

    Таким образом ошибки php будут выводиться на экран, а также логироваться в файл php-errors.log
    Вывод ошибок прямо из php скрипта:

    ini_set('error_reporting', E_ALL);

    Включить логи php изменив php.ini

    error_reporting = E_ALL
    display_errors = On
    display_startup_errors = On
    log_errors = On
    log_errors_max_len = 1024
    error_log = /var/log/php-errors.log

    ساخت ربات تلگرام با 10 خط کُد PHP! - بات چین botchain.ir

    In Memory Data Management and Analysis

    Thanks for your reply but I'm still having this issue. :exclamation:
    It is intended to display on one page five languages simultaneously in the view.

    :idea: for example "$request->setLocale('ru')". This command only works in the control.

    We need to run this command or same code in the view for switch languages concurrently.

    To display different currency, it is predesignated to be used in the view as the third parameter to the lang() method, but we want to return the string by the language key in many languages.

    For example, similar to the currency as the third parameter:

    Awesome PHP

    Inspired by ziadoz/awesome-php

    Inspired by codeigniter-id/awesome-codeigniter

    A curated list of amazingly awesome PHP libraries, resources and shiny things.

    Contributing and Collaborating



    Composer Repositories

    Composer Repositories.

    Dependency Management

    Libraries for dependency and package management.

    • Composer Installers - A multi framework Composer library installer.
    • Composer - A package and dependency manager.
    • Melody - A tool to build one file Composer scripts.
    • Pickle - A PHP extension installer.

    Dependency Management Extras

    Extras related to dependency management.

    • Composed - A library to parse your project's Composer environment at runtime.
    • Composer Merge Plugin - A composer plugin to merge several composer.json files.
    • Prestissimo - A composer plugin which enables parallel install process.
    • Repman - A private PHP package repository manager and Packagist proxy.
    • Satis - A static Composer repository generator.
    • tooly - A library to manage PHAR files in project using Composer.
    • Toran Proxy - A static Composer repository and proxy.


    Web development frameworks.

    • CakePHP - A rapid application development framework.
    • Laminas - A framework comprised of individual components (previously Zend Framework).
    • Laravel - A web application framework with expressive, elegant syntax.
    • Nette - A web framework comprised of mature components.
    • Phalcon - A framework implemented as a C extension.
    • Spiral - A high performance PHP/Go framework.
    • Symfony - A set of reuseable components and a web framework.
    • Yii2 - A fast, secure, and efficient web framework.

    Framework Extras

    Extras related to web development frameworks.

    • CakePHP CRUD - A Rapid Application Development (RAD) plugin for CakePHP.
    • Knp RAD Components - A set of Rapid Application Development (RAD) components for Symfony.
    • LaravelS - Glue for using Swoole in Laravel or Lumen.
    • Symfony CMF - A Content Management Framework to create custom CMS.

    Content Management Systems (CMS)

    Tools for managing digital content. Backdrop - A CMS targeting small-to-medium sized business and non-profits (a fork of Drupal). Concrete5 - A CMS targeting users with a minimum of technical skills. Drupal - An enterprise level CMS. Grav - A modern flat-file CMS. Joomla - Another leading CMS. Magento - The most popular ecommerce platform. Pico CMS - A stupidly simple, blazing fast, flat file CMS. WordPress - A blogging platform and CMS. * Moodle - An open-source learning platform.


    Standalone components from web development frameworks and development groups.

    Micro Frameworks

    Micro frameworks and routers.

    • Laravel-Zero - A micro-framework for console applications.
    • Lumen - A micro-framework by Laravel.
    • Mezzio - A micro-framework by Laminas.
    • Radar - An Action-Domain-Responder implementation for PHP.
    • Silly - A micro-framework for CLI applications.
    • Slim - Another simple micro framework.

    Micro Framework Extras

    Extras related to micro frameworks and routers.


    Libraries for handling application routing.

    • Aura.Router - A full-featured routing library.
    • Fast Route - A fast routing library.
    • Klein - A flexible router.
    • Pux - Another fast routing library.
    • Route - A routing library built on top of Fast Route.


    Libraries and tools for templating and lexing.

    • MtHaml - A PHP implementation of the HAML template language.
    • Mustache - A PHP implementation of the Mustache template language.
    • PHPTAL - A PHP implementation of the TAL templating language.
    • Plates - A native PHP templating library.
    • Smarty - A template engine to complement PHP.
    • Twig - A comprehensive templating language.

    Static Site Generators

    Tools for pre-processing content to generate web pages.

    • Couscous - Couscous turns Markdown documentation into beautiful websites. It's GitHub Pages on steroids.
    • Sculpin - A tool that converts Markdown and Twig into static HTML.
    • Spress - An extensible tool that converts Markdown and Twig into HTML.


    Libraries for working with HTTP.

    • Buzz - Another HTTP client.
    • Guzzle - A comprehensive HTTP client.
    • HTTPlug - An HTTP client abstraction without binding to a specific implementation.
    • Nyholm PSR-7 - A super lightweight PSR-7 implementation. Very strict and very fast.
    • PHP VCR - A library for recording and replaying HTTP requests.
    • Requests - A simple HTTP library.
    • Retrofit - A library to ease creation of REST API clients.
    • Symfony HTTP Client - A component to fetch HTTP resources synchronously or asynchronously.
    • Laminas Diactoros - PSR-7 HTTP Message implementation.


    Libraries for scraping websites.

    • DiDOM - A super fast HTML scrapper and parser.
    • Embed - An information extractor from any web service or page.
    • Goutte - A simple web scraper.
    • Symfony Panther - A browser testing and web crawling library for PHP and Symfony.
    • PHP Spider - A configurable and extensible PHP web spider.


    Libraries for building application using middlewares.


    Libraries for parsing URLs.

    • PHP Domain Parser - A domain suffix parser library.
    • Purl - A URL manipulation library.
    • sabre/uri - A functional URI manipulation library.
    • Uri - Another URL manipulation library.


    Libraries for sending and parsing email.


    Libraries for file manipulation and MIME type detection.

    • CSV - A CSV data manipulation library.
    • Flysystem - Abstraction for local and remote filesystems.
    • Gaufrette - A filesystem abstraction layer.
    • Hoa Mime - Another MIME detection library.
    • PHP FFmpeg - A wrapper for the FFmpeg video library.
    • UnifiedArchive - A unified reader and writer of compressed archives.


    Libraries for working with streams.

    • ByteStream - An asynchronous stream abstraction.
    • Streamer - A simple object-orientated stream wrapper library.

    Dependency Injection

    Libraries that implement the dependency injection design pattern.

    • Aura.Di - A serializable dependency injection container with constructor and setter injection, interface and trait awareness, configuration inheritance, and much more.
    • Acclimate - A common interface to dependency injection containers and service locators.
    • Auryn - A recursive dependency injector.
    • Container - Another flexible dependency injection container.
    • Disco - A PSR-11 compatible, annotation-based dependency injection container.
    • PHP-DI - A dependency injection container that supports autowiring.
    • Pimple - A tiny dependency injection container.
    • Symfony DI - A dependency injection container component.


    Libraries for manipulating images.


    Libraries for testing codebases and generating test data.

    • Alice - An expressive fixture generation library.
    • AspectMock - A mocking framework for PHPUnit/Codeception.
    • Atoum - A simple testing library.
    • Behat - A behaviour driven development (BDD) testing framework.
    • Codeception - A full stack testing framework.
    • Faker - A fake data generator library.
    • HTTP Mock - A library for mocking HTTP requests in unit tests.
    • Infection - An AST-based PHP Mutation testing framework.
    • Kahlan - Full stack Unit/BDD testing framework with built-in stub, mock and code-coverage support.
    • Mink - Web acceptance testing.
    • Mockery - A mock object library for testing.
    • ParaTest - A parallel testing library for PHPUnit.
    • Peridot - An event driven test framework.
    • Phake - Another mock object library for testing.
    • Pho - Another behaviour driven development testing framework.
    • PHP-Mock - A mock library for built-in PHP functions (e.g. time()).
    • PHPSpec - A design by specification unit testing library.
    • PHPT - A test tool used by PHP itself.
    • PHPUnit - A unit testing framework.
    • Prophecy - A highly opinionated mocking framework.
    • VFS Stream - A virtual filesystem stream wrapper for testing.

    Continuous Integration

    Libraries and applications for continuous integration.

    • CircleCI - A continuous integration platform.
    • GitlabCi - Let GitLab CI test, build, deploy your code. TravisCi like.
    • Jenkins - A continuous integration platform with PHP support.
    • JoliCi - A continuous integration client written in PHP and powered by Docker.
    • PHPCI - An open source continuous integration platform for PHP.
    • SemaphoreCI - A continuous integration platform for open source and private projects.
    • Shippable - A Docker based continious integration platform for open source and private projects.
    • Travis CI - A continuous integration platform.
    • Setup PHP - A GitHub Action for PHP.


    Libraries for generating project documentation.

    • APIGen - Another API documentation generator.
    • daux.io - A documentation generator which uses Markdown files.
    • PHP Documentor 2 - A documentation generator.
    • phpDox - A documentation generator for PHP projects (that is not limited to API documentation).


    Libraries for generating secure random numbers, encrypting data and scanning and testing for vulnerabilities.

    • Securimage PHP Captcha
    • Halite - A simple library for encryption using libsodium.
    • HTML Purifier - A standards compliant HTML filter.
    • IniScan - A tool that scans PHP INI files for security.
    • Optimus - Id obfuscation based on Knuth's multiplicative hashing method.
    • PHPGGC - A library of PHP unserializeable payloads along with a tool to generate them.
    • PHP Encryption - Secure PHP Encryption Library.
    • PHP SSH - An experimental object orientated SSH wrapper library.
    • PHPSecLib - A pure PHP secure communications library.
    • random_compat - PHP 5.x support for random_bytes() and random_int()
    • RandomLib - A library for generating random numbers and strings.
    • Symfony Security Monitoring - A web tool to check your Composer dependencies for security advisories, previously known as "SensioLabs Security Check".
    • SQLMap - An automatic SQL injection and database takeover tool.
    • TCrypto - A simple encrypted key-value storage library.
    • VAddy - A continuous security testing platform for web applications.
    • Zap - An integrated penetration testing tool for web applications.


    Libraries and tools for working with and storing passwords.

    • GenPhrase - A library for generating secure random passphrases.
    • Password Compat - A compatibility library for the new PHP 5.5 password functions.
    • Password Policy - A password policy library for PHP and JavaScript.
    • Password Validator - A library for validating and upgrading password hashes.
    • Password-Generator - PHP library to generate random passwords.
    • PHP Password Lib - A library for generating and validating passwords.
    • phpass - A portable password hashing framework.
    • Zxcvbn PHP - A realistic PHP password strength estimate library based on Zxcvbn JS.

    Code Analysis

    Libraries and tools for analysing, parsing and manipulating codebases.

    Code Quality

    Libraries for managing code quality, formatting and linting.

    • PHP CodeSniffer - A library that detects PHP, CSS and JS coding standard violations.
    • PHP CS Fixer - A coding standards fixer library.
    • PHP Mess Detector - A library that scans code for bugs, sub-optimal code, unused parameters and more.
    • PHPCheckstyle - A tool to help adhere to certain coding conventions.
    • PHPCPD - A library that detects copied and pasted code.

    Static Analysis

    Libraries for performing static analysis of PHP code.

    • Exakat - A static analysis engine for PHP.
    • Deptrac - A static code analysis tool that helps to enforce rules for dependencies between software layers.
    • Mondrian - A code analysis tool using Graph Theory.
    • phan - A static analyzer based on PHP 7+ and the php-ast extension.
    • PHP Architecture Tester - Easy to use architecture testing tool for PHP.
    • PHPCompatibility - A PHP compatibility checker for PHP CodeSniffer.
    • PhpDependencyAnalysis - A tool to create customisable dependency graphs.
    • PHP Metrics - A static metric library.
    • PHP Migration - A static analyzer for PHP version migration.
    • PHPStan - A PHP Static Analysis Tool.
    • Psalm - A static analysis tool for finding errors in PHP applications.


    Libraries related to design patterns, programming approaches and ways to organize code.

    • Design Patterns PHP - A repository of software patterns implemented in PHP.
    • Finite - A simple PHP finite state machine.
    • Functional PHP - A functional programming library.
    • Iter - A library that provides iteration primitives using generators.
    • Patchwork - A library for redefining userland functions.
    • Pipeline - A pipeline pattern implementation.
    • Porter - Data import abstraction library for consuming Web APIs and other data sources.
    • Ruler - A simple stateless production rules engine.
    • RulerZ - A powerful rule engine and implementation of the Specification pattern.

    Debugging and Profiling

    Libraries and tools for debugging errors and profiling code.

    • APM - Monitoring extension collecting errors and statistics into SQLite/MySQL/StatsD.
    • Barbushin PHP Console - Another web debugging console using Google Chrome.
    • Blackfire.io - A low-overhead code profiler.
    • Kint - A debugging and profiling tool.
    • PCOV - A self contained code coverage compatible driver.
    • PHP Console - A web debugging console.
    • PHP Debug Bar - A debugging toolbar.
    • PHPBench - A benchmarking Framework.
    • PHPSpy - A low-overhead sampling profiler.
    • Symfony VarDumper - A variable dumper component.
    • Tideways.io - Monitoring and profiling tool.
    • Tracy - A simple error detection, logging and time measuring library.
    • Whoops - A pretty error handling library.
    • xDebug - A debug and profile tool for PHP.
    • XHProf - A profiling tool originally developed by Facebook.
    • Z-Ray - A debug and profile tool for Zend Server.

    Build Tools

    Project build and automation tools.

    • Box - A utility to build PHAR files.
    • Construct - A PHP project/micro-package generator.
    • Phing - A PHP project build system inspired by Apache Ant.

    Task Runners

    Libraries for automating and running tasks.

    • Bldr - A PHP Task runner built on Symfony components.
    • Jobby - A PHP cron job manager without modifying crontab.
    • Robo - A PHP Task runner with object-orientated configurations.
    • Task - A pure PHP task runner inspired by Grunt and Gulp.


    Tools for building navigation structures.

    • KnpMenu - A menu library.
    • Menu - A flexible menu library with a fluent interface.

    Asset Management

    Tools for managing, compressing and minifying website assets.

    • JShrink - A JavaScript minifier library.
    • Laravel Mix - An elegant wrapper around Webpack for the 80% use case.
    • Symfony Asset - Manages URL generation and versioning of web assets.
    • Symfony Encore - A simple but powerful API for processing and compiling assets built around Webpack.


    Libraries for geocoding addresses and working with latitudes and longitudes.

    Date and Time

    Libraries for working with dates and times.

    • CalendR - A calendar management library.
    • Carbon - A simple DateTime API extension.
    • Chronos - A DateTime API extension supporting both mutable and immutable date/time.
    • Moment.php - Moment.js inspired PHP DateTime handler with i18n support.
    • Yasumi - An library to help you calculate the dates and names of holidays.


    Libraries that are event-driven or implement non-blocking event loops. Amp - An event driven non-blocking I/O library. Broadway - An event source and CQRS library. CakePHP Event - An event dispatcher library. Elephant.io - Yet another web socket library. Evenement - An event dispatcher library. Event - An event library with a focus on domain events. Hoa EventSource - An event source library. Hoa WebSocket - Another web socket library. Prooph Event Store - An event source component to persist event messages PHP Defer - Golang's defer statement for PHP. Ratchet - A web socket library. ReactPHP - An event driven non-blocking I/O library. RxPHP - A reactive extension library. Swoole - An event-driven asynchronous and concurrent networking communication framework with high performance for PHP written in C. * Workerman - An event driven non-blocking I/O library.


    Libraries for generating and working with log files.

    • Monolog - A comprehensive logger.


    Libraries and applications for taking payments and building online e-commerce stores.

    • Money - A PHP implementation of Fowler's money pattern.
    • Brick\Money - A money library for PHP, with support for contexts, cash roundings, currency conversion.
    • OmniPay - A framework agnostic multi-gateway payment processing library.
    • Payum - A payment abstraction library.
    • Shopware - Highly customizable e-commerce software
    • Swap - An exchange rates library.
    • Sylius - An open source e-commerce solution.


    Libraries and software for working with PDF files.

    • Dompdf - A HTML to PDF converter.
    • PHPPdf - A library for generating PDFs and images from XML.
    • Snappy - A PDF and image generation library.
    • WKHTMLToPDF - A tool to convert HTML to PDF.
    • tcpdf - PHP class for generating PDF files on-the-fly without requiring external extensions.
    • FPDF - A PHP class which allows to generate PDF files with pure PHP, that is to say without using the PDFlib library.


    Libraries for working with office suite documents.

    • PHPPowerPoint - A library for working with Microsoft PowerPoint Presentations.
    • PHPWord - A library for working with Microsoft Word documents.
    • PHPSpreadsheet - A pure PHP library for reading and writing spreadsheet files (successor of PHPExcel).
    • Spout - Read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way .


    Libraries for interacting with databases using object-relational mapping (ORM) or datamapping techniques.

    • Atlas.Orm - A data mapper implementation for your persistence model in PHP.
    • Aura.Sql - Provides an extension to the native PDO along with a profiler and connection locator.
    • Aura.SqlQuery - Independent query builders for MySQL, PostgreSQL, SQLite, and Microsoft SQL Server.
    • Baum - A nested set implementation for Eloquent.
    • CakePHP ORM - Object-Relational Mapper, implemented using the DataMapper pattern.
    • Cycle ORM - PHP DataMapper, ORM.
    • Doctrine Extensions - A collection of Doctrine behavioural extensions.
    • Doctrine - A comprehensive DBAL and ORM.
    • Laravel Eloquent - A simple ORM.
    • Pomm - An Object Model Manager for PostgreSQL.
    • ProxyManager - A set of utilities to generate proxy objects for data mappers.
    • RedBean - A lightweight, configuration-less ORM.
    • Spot2 - A MySQL datamapper ORM.


    Libraries to help manage database schemas and migrations.

    • Doctrine Migrations - A migration library for Doctrine.
    • Migrations - A migration management library.
    • Phinx - Another database migration library.
    • PHPMig - Another migration management library.
    • Ruckusing - Database migrations for PHP ala ActiveRecord Migrations with support for MySQL, Postgres, SQLite.


    Libraries for working with "NoSQL" backends.

    • PHPMongo - A MongoDB ORM.
    • Predis - A feature complete Redis library.


    Libraries for working with event and task queues.

    • Bernard - A multibackend abstraction library.
    • BunnyPHP - A performant pure-PHP AMQP (RabbitMQ) sync and also async (ReactPHP) library.
    • Pheanstalk - A Beanstalkd client library.
    • PHP AMQP - A pure PHP AMQP library.
    • Tarantool Queue - PHP bindings for Tarantool Queue.
    • Thumper - A RabbitMQ pattern library.
    • Enqueue - A message queue packages for PHP that supports RabbitMQ, AMQP, STOMP, Amazon SQS, Redis and Doctrine transports.


    Libraries and software for indexing and performing search queries on data.

    Command Line

    Libraries related to the command line.

    • Aura.Cli - Provides the equivalent of request ( Context ) and response ( Stdio ) objects for the command line interface, including Getopt support, and an independent Help object for describing commands.
    • Boris - A tiny PHP REPL.
    • Cilex - A micro framework for building command line tools.
    • CLI Menu - A library for building CLI menus.
    • CLIFramework - A command-line framework supports zsh/bash completion generation, subcommands and option constraints. It also powers phpbrew.
    • CLImate - A library for outputting colours and special formatting.
    • Commando - Another simple command line opt parser.
    • Cron Expression - A library to calculate cron run dates.
    • GetOpt - A command line opt parser.
    • GetOptionKit - Another command line opt parser.
    • Hoa Console - Another command line library.
    • PsySH - Another PHP REPL.
    • ShellWrap - A simple command line wrapper library.

    Authentication and Authorization

    Libraries for implementing user authentication and authorization.


    Libraries for working with markup.


    Libraries for parsing and manipulating strings.

    • Agent - A PHP desktop/mobile user agent parser, based on Mobiledetect.
    • ANSI to HTML5 - An ANSI to HTML5 converter library.
    • Color Jizz - A library for manipulating and converting colours.
    • Device Detector - Another library for parsing user agent strings.
    • Hoa String - Another UTF-8 string library.
    • Jieba-PHP - A PHP port of Python's jieba. Chinese text segmentation for natural language processing.
    • Mobile-Detect - A lightweight PHP class for detecting mobile devices (including tablets).
    • Patchwork UTF-8 - A portable library for working with UTF-8 strings.
    • Portable UTF-8 - A string manipulation library with UTF-8 safe replacement methods.
    • Slugify - A library to convert strings to slugs.
    • SQL Formatter - A library for formatting SQL statements.
    • Stringy - A string manipulation library with multibyte support.
    • UA Parser - A library for parsing user agent strings.
    • URLify - A PHP port of Django's URLify.js.
    • UUID - A library for generating UUIDs.


    Libraries for working with numbers.

    • Brick\Math - A library providing large number support: BigInteger, BigDecimal and BigRational.
    • ByteUnits - A library to parse, format and convert byte units in binary and metric systems.
    • LibPhoneNumber for PHP - A PHP implementation of Google's phone number handling library.
    • PHP Conversion - Another library for converting between units of measure.
    • PHP Units of Measure - A library for converting between units of measure.

    Filtering and Validation

    Libraries for filtering and validating data.

    • Assert - A validation library with a rich set of assertions. Supports assertion chaining and lazy assertions.
    • Aura.Filter - Provides tools to validate and sanitize objects and arrays.
    • CakePHP Validation - Another validation library.
    • Filterus - A simple PHP filtering library.
    • ISO-codes - A library for validating inputs according standards from ISO, International Finance, Public Administrations, GS1, Book Industry, Phone numbers & Zipcodes for many countries.
    • JSON Schema - A JSON Schema validation library.
    • MetaYaml - A schema validation library that supports YAML, JSON and XML.
    • Respect Validation - A simple validation library.
    • Upload - A library for handling file uploads and validation.
    • Valitron - Another validation library.
    • Volan - Another simplified validation library.


    Libraries and web tools for developing APIs.

    • API Platform - Expose in minutes an hypermedia REST API that embraces JSON-LD, Hydra format.
    • Laminas API Tool Skeleton - An API builder built with the Laminas Framework.
    • Drest - A library for exposing Doctrine entities as REST resource endpoints.
    • HAL - A Hypertext Application Language (HAL) builder library.
    • Hateoas - A HATEOAS REST web service library.
    • Negotiation - A content negotiation library.
    • Restler - A lightweight framework to expose PHP methods as RESTful web API.
    • wsdl2phpgenerator - A tool to generate PHP classes from SOAP WSDL files.


    Libraries for caching data.

    Data Structure and Storage

    Libraries that implement data structure or storage techniques.

    • CakePHP Collection - A simple collections library.
    • Fractal - A library for converting complex data structures to JSON output.
    • Ginq - Another PHP library based on .NET's LINQ.
    • JsonMapper - A library that maps nested JSON structures onto PHP classes.
    • JSON Machine - Provides iteration over huge JSONs using simple foreach
    • Knapsack - Collection library inspired by Clojure's sequences.
    • msgpack.php - A pure PHP implementation of the MessagePack serialization format.
    • PINQ - A PHP library based on .NET's LINQ (Language Integrated Query).
    • Serializer - A library for serialising and de-serialising data.
    • YaLinqo - Yet Another LINQ to Objects for PHP.
    • Laminas Serializer - Another library for serialising and de-serialising data.


    Libraries for working with notification software.

    • JoliNotif - A cross-platform library for desktop notification (support for Growl, notify-send, toaster, etc)
    • Notification Pusher - A standalone library for device push notifications.
    • Notificato - A library for handling push notifications.
    • Notificator - A lightweight notification library.
    • Php-pushwoosh - A PHP Library to easily send push notifications with the Pushwoosh REST Web Services.


    Libraries for project deployment.

    • Deployer - A deployment tool.
    • Envoy - A tool to run SSH tasks with PHP.
    • Rocketeer - A fast and easy deployer for the PHP world.

    Internationalisation and Localisation

    Libraries for Internationalization (I18n) and Localization (L10n).

    • Aura.Intl - Provides internationalization (I18N) tools, specifically package-oriented per-locale message translation.
    • CakePHP I18n - Message translation and localization for dates and numbers.


    Libraries and tools to help build serverless web applications.

    • Bref - Serverless PHP on AWS Lambda.
    • OpenWhisk - An open source serverless cloud platform.
    • Serverless Framework - An open source framework for building serverless applications.
    • Laravel Vapor - A serverless deployment platform for Laravel, powered by AWS.


    Libraries and tools for configuration.

    Third Party APIs

    Libraries for accessing third party APIs.

    • Amazon Web Service SDK - The official PHP AWS SDK library.
    • AsyncAWS - An unofficial asynchronous PHP AWS SDK.
    • Campaign Monitor - The official Campaign Monitor PHP library.
    • Dropbox SDK - The official PHP Dropbox SDK library.
    • Github - A library to interface with the Github API.
    • Mailgun The official Mailgun PHP API.
    • Square - The official Square PHP SDK for payments and other Square APIs.
    • Stripe - The official Stripe PHP library.
    • Twilio - The official Twilio PHP REST API.


    Libraries to help build PHP extensions.

    • PHP CPP - A C++ library for developing PHP extensions.
    • Zephir - A compiled language between PHP and C++ for developing PHP extensions.


    Useful libraries or tools that don't fit in the categories above.

    • Annotations - An annotations library (part of Doctrine).
    • BotMan - A framework agnostic PHP library to build cross-platform chat bots.
    • CakePHP Utility - Utility classes such as Inflector, String, Hash, Security and XML.
    • Chief - A command bus library.
    • ClassPreloader - A library for optimising autoloading.
    • Country List - A list of all countries with names and ISO 3166-1 codes.
    • Embera - An Oembed consumer library.
    • Essence - A library for extracting web media.
    • Expose - An open source PHP tunneling service.
    • Graphviz - A Graphviz library.
    • Hprose-PHP - A very newbility RPC Library, support 25+ languages now.
    • JSON Lint - A JSON lint utility.
    • JSONPCallbackValidator - A library for validating JSONP callbacks.
    • Lock - A lock library to provide exclusive execution.
    • Metrics - A simple metrics API library.
    • noCAPTCHA - Helper for Google's noCAPTCHA (reCAPTCHA).
    • Nmap - A PHP wrapper around Nmap.
    • Pagerfanta - A pagination library.
    • PHP PassBook - A PHP library for iOS PassBook.
    • PHP-ML - A library for Machine Learning in PHP.
    • PHPCR - A PHP port of the Java Content Repository (JCR).
    • PHPStack - A TCP/IP stack proof of concept written in PHP.
    • print_o - An object graph visualizer.
    • Procrastinator - A library for running time consuming tasks.
    • Prooph Service Bus - Lightweight message bus supporting CQRS and Micro Services
    • RMT - A library for versioning and releasing software.
    • sabre/vobject - A library for parsing VCard and iCalendar objects.
    • Safe - All PHP functions, rewritten to throw exceptions instead of returning false.
    • Slimdump - An easy dumper tool for MySQL.
    • Spork - A process forking library.
    • SuperClosure - A library that allows Closures to be serialized.
    • Underscore - A PHP port of the Underscore JS library.


    Software for creating a development environment.

    PHP Installation

    Tools to help install and manage PHP on your computer.

    Development Environment

    Software and tools for creating a sandboxed development environment.

    • Ansible - A radically simple orchestration framework.
    • Docker - A containerization platform.
    • Laravel Homestead - A local development environment for Laravel.
    • Laradock - A full PHP development environment based on Docker.
    • Puppet - A server automation framework and application.
    • Vagrant - A portable development environment utility.
    • Vessel - Simple Docker development environments for Laravel.

    Virtual Machines

    Alternative PHP virtual machines.

    • Hack - A programming language for HHVM.
    • HHVM - A Virtual Machine, Runtime and JIT for PHP by Facebook.
    • PeachPie - PHP compiler and runtime for .NET and .NET Core.

    Text Editors and IDEs

    Text Editors and Integrated Development Environments (IDE) with support for PHP.

    Web Applications

    Web-based applications and tools.

    • 3V4L - An online PHP & HHVM shell.
    • DBV - A database version control application.
    • PHP Queue - An application for managing queueing backends.
    • MailCatcher - A web tool for capturing and viewing emails.
    • Cachet - The open source status page system.
    • phpRedisAdmin - A simple web interface to manage Redis databases.
    • phpMyAdmin - A web interface for MySQL/MariaDB.
    • Adminer - Database management in a single PHP file.
    • Lychee - An easy to use and great looking photo-management-system.


    Infrastructure for providing PHP applications and services.

    • appserver.io - A multithreaded application server for PHP, written in PHP.
    • php-pm - A process manager, supercharger and load balancer for PHP applications.
    • RoadRunner - High-performance PHP application server, load-balancer and process manager.


    Various resources, such as books, websites and articles, for improving your PHP development skills and knowledge.

    PHP Websites

    Useful PHP-related websites.

    Other Websites

    Useful websites related to web development.

    PHP Books

    Fantastic PHP-related books.

    Other Books

    Books related to general computing and web development.

    PHP Videos

    Fantastic PHP-related videos.

    PHP Podcasts

    Podcasts with a focus on PHP topics.

    PHP Reading

    PHP-releated reading materials.

    PHP Internals Reading

    Reading materials related to the PHP internals or performance.

    PHP Magazines

    Fantastic PHP-related magazines.

    Awesome CodeIgniter Awesome

    A list of awesome CodeIgniter core, helpers, hooks, language, libraries, third_party and other cool resources for CodeIgniter.


    • Faster Development of CodeIgniter Apps - Jumpstart your CodeIgniter web applications.
    • Sprint PHP - A lightweight, modern addition to CodeIgniter 3. The heart of Bonfire Next.
    • Ignition-Go Codeigniter Modular App Building Framework and App starter - build enterprise class web applications
    • ErtikazOS A complete platform for building web applications.
    • CodeIgniter Skeleton - Yet another CodeIgniter Skeleton with ready-to-use dashboard, database, hooks system, plugins, themes and lots of other features.
    • Luthier CI - Improved routing, middleware support, authentication tools and more for CodeIgniter 3 framework
    • Rimbun Codeigniter Starter - A Complete platform for building web application from Indonesia Programmer. Built with Codeigniter 3
    • My Igniter - Codeigniter starter with HMVC + ReactJs + Twig


    • Pusaka CMS - Flat file CMS.
    • Fuelcms - The content management system for premium-grade websites.
    • No-CMS - A CodeIgniter Based CMS Framework.
    • cms-canvas - CodeIgniter CMS.
    • Ionize CMS - ionize, native multilingual CMS.
    • Codefight CMS - Codefight a CodeIgniter CMS.
    • Bonfire - Jumpstart your CodeIgniter web applications.
    • Hoosk - Hoosk CodeIgniter CMS.
    • ForgeIgniter - Friendly,open source, easy-to-use CMS.
    • ImageCMS - Open source php CMS based on CodeIgniter.
    • nodCMS - A Free CMS powered by CodeIgniter.
    • MaxSite CMS - MaxSite CMS.
    • ci-cms - CI-CMS using Modular Extensions.
    • Codeigniter-Egypt - Another CodeIgniter CMS, With some Love.
    • Open Blog - Open Blog is a free and open source blogging platform built using the CodeIgniter PHP framework.





    Third Party



    Web Services


    • Codeigniter ORM Model - CodeIgniter 3 Active Record (ORM) Standard Model with Laravel Eloquent & Yii2 AR like
    • Datamapper ORM - CodeIgniter Sparks Package for Datamapper ORM.
    • Gas ORM - A lighweight and easy-to-use ORM for CodeIgniter.
    • Credo - Integrates Doctrine to CodeIgniter with ease.
    • Wildfire - Yet another wrapper for CodeIgniter's Query Builder Class.


    User Guide Translations

    • Indonesia - Indonesian CodeIgniter User Guide.
    • Brazil - Brazilian CodeIgniter User Guide.

    Useful Websites


    View Layouts — CodeIgniter 4.1.5 documentation

    Views — CodeIgniter 4.1.5 documentation

    News section — CodeIgniter 4.1.5 documentation



    2000-2016 CMS Fadak. ||| Version : 4.2-b2 ||| This page was produced in : 0.01 Seconds