Symfony Error

You are not allowed to access this file. Check app_dev.php

Try to remove this two lines from app_dev.php .It works for me
 header('HTTP/1.0 403 Forbidden');
 exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');


Symfony Documentation

Installing Symfony by composer

after composer installation then install the symfony. command in your shell:

php composer.phar create-project symfony/framework-standard-edition my_project_name

toolbar hide:

app > config > config_dev.yml
toolbar: false

Creating database:

database create by command follow the symfony documentation.

Creating an Entity Class:

command in your shell:
cd htdocs
cd eventmanage
php bin/console doctrine:generate:entity

The Entity shortcut name: AppBundle:Category

New field name(press <return> to stop adding fields): name

New field name(press <return> to stop adding fields): create_date
Field type[string]:datetime

Entity table relation:

Entity > fileName.php
* @var int
* @ORM\ManyToOne(targetEntity=”Category”, inversedBy=”events”)
private $category;

Creating the Database Tables/Schema

command in your shell:
php bin/console doctrine:schema:update –force

Fetching Data from Database:

follow the symfony documentation > guides > Databae(Doctrine ORM)

How to remove “web/app_dev.php” from Symfony URLs?

web > htaccess change base url

How to change directory




just cut all file from the web folder and past root folder then change app.php

Laravel Snippets

Incorrect Paths to assets - css and js
The issue is on localhost. I did not created custom virtual host.
However using {{asset('path')}} location seems to work everywhere.

Laravel 5.3 - Clear config cache in shared hosting
config:clear command just deletes bootstrap/cache/config.php file, 
so just delete this file manually.

Laravel Documentation

Installing Laravel

Laravel utilizes Composer to manage its dependencies. So, before using Laravel, make sure you have Composer installed on your machine.

after composer installation then install the laravel. command in your terminal:

php composer.phar create-project –prefer-dist laravel/laravel protfolio


blade is a laravel default template engine. You can uses special syntax.

Create Controller and Routes

command in your terminal:
cd htdocs
cd portfolio
php artisan make:controller ControllerName

Create db table

cd htdocs
cd portfolio
php artisan make:migration create_galleries_table –create=galleries
php artisan migrate

helper and plugins installation

1.go then version select
2.You can see installation code composer.json file and add following code
4.then you have to update the composer go to
after composer installation then update composer.phar file.
command in your terminal:
#php composer.phar update
6.Next you have to add provider and aliases just follow the laravelcollective

SQL Topics

SQL Queries With PhpMyAdmin
|| (like) operator actually search করার জন্য ব্যবহৃত হয়।
|| an (index) can be created in a table to find data more quickly 
   and efficiently
|| Relationships & Foreign Keys
    ২টা টেবিলের মধ্যে আপনি কিভাবে রিলেশন করবেন। রিলেশন করার জন্যে 
    একটা টেবিলের একট key কে primary key করতে হবে এবং আরেকটা টেবিলে  
    ঐটার Foreign Key করতে হবে
    SQL query:
    CREATE TABLE orders(
        orderNumber VARCHAR(255),
        productId INT,
        customerId INT,
        orderData DATETIME default CURRENT_TIMESTAMP,
        PRIMARY KEY(id),
        FOREIGN KEY(productId) REFERENCES products(id),
        FOREIGN KEY(customerId) REFERENCES customers(id)
|| Inner Join
	"SELECT tbl_post.*,
	FROM tbl_post
	INNER JOIN tbl_category
	ON =
|| Union Operator
    ২টা টেবিলের সিটি কলাম থেকে সমজাতীয় ডাটা একটা করে নিয়ে আসে
    SELECT city FROM customers
    SELECT city FROM suppliers
    ORDER BY city;
|| Union All   
    ২টা টেবিলের সিটি কলাম থেকে সমজাতীয় সবগুলো ডাটা নিয়ে আসে।
    অর্থাৎ ঢাকা যদি ২ টেবিলে ৫ বার থাকে তাহলে ৫টাই নিয়ে আসবে।
|| Subquery IN SELECT
    SELECT * FROM customers 
        WHERE id IN(SELECT id FROM customers
                     WHERE age > 30
|| Subquery with INSERT    
    একটা  টেবিলের হুবহু ডাটা অন্য একটা টেবিলে নিয়ে আসা
    INSERT INTO customers_bup
        SELECT * FROM customers
        WHERE id IN(
            SELECT id FROM customers
    টেবিল ডিলিট হবে না শুধু টেবিলের ডাটা ডিলিট হবে।
    TRUNCATE TABLE suppliers;
|| Wildcard Operators
    % Matches one or more characters
    _ Matches one character
    200%    finds any values that start with 200
    %200%   finds any values that have 200 in any position
    _00%    finds any values that have 00 in the second and third positions
    2_%_%   finds any values that start with 2 and are at least 3 characters in length
    %2      finds any values that end with 2

|| Aliases for Column
    Aliases can be useful when:
        You rename a table or a column name.
        There are more than one table involved in a query.
        Functions are used in the query.
        Column names are big or not very readable.
        Two or more columns are combined together.
    "SELECT p.*,
	FROM tbl_post AS p, tbl_category AS c
	WHERE =";
    sql query চালিয়ে একটা টেবিল থেকে কিছু ডাটা এনে আরেকটা virtual table 
    তৈরি করা
    CREATE VIEW customers_view AS
        SELECT id, firstName,lastName
            FROM customers;
|| UCASE & LCASE Functions
    SELECT UCASE(firstName), LCASE(lastName), address FROM customers;

OOP Topics

|| Preventing from Extending & Overriding by final keyword
	আপনি অনেকগুলো ক্লাস অথবা মেথড নিয়ে কাজ করছেন। আপনি চাচ্ছেন
    স্পেসিফিক কিছু ক্লাসের সাবক্লাস তৈরী করবেন না অথবা মেথডকে আরেকটা 
    ক্লাসে ওভারাইট করতে দিবেন না। 
    তখন আপনি final keyword ব্যবহার করতে পারেন।

|| Polymorphism
	একটা ক্লাস থেকে আরেকট ক্লাস অথবা মালটিপাল ক্লাস তৈরী করা এবং
    সুপার ক্লাসের মেথডকে সাবক্লাসে ওভারাইট করা।

|| Constructor and  destructor
	constructor magic method auto loaded and execute at first
	destructor magic method auto loaded and execute at the end

|| Interface
	Interface actually empty class যার ভিতরে মেথড ডিকলারেশন থাকে এর 
    কোন বডি পার্ট থাকে না। Interface কে আরেকটা ক্লাসে implements করে 
    কাজ করতে হয়।

|| Abstract
	Abstract ও  Interface ক্লাস এর ক্ষেত্রে সরাসরি object তৈরী করা যায় না
    Interface এর ক্ষেত্রে আমরা  multiple Interface কে একটা ক্লাস এ 
    implements করে কাজ করতে পারি। যেখানে Abstract কে একটি ক্লাসে 
    extentd করে কাজ করতে হয়। 

|| magic methods
	__get($property) when access undefined property then get mathod 
    automatically work
	__set($property, $value)  when a value asign inside the undefined 
    property then set mathod work

	__call($method, $arg_array) when access undefined method then call 
    mathod work

|| Method Chaining    
	একটা অবজেক্টের মালটিপাল মেথডে access করা

|| type hinting 
	একটা ক্লাস এর মেথডে আপনি বলে দিতে পারবেন আপনি কি টাইপের ডাটা 
    নিয়ে কাজ করছেন। সেটা হতে পারে আ্যারে টাইপের ডাটা বা অবজেক্ট টাইপের ডাটা	

||	__CLASS__ magic constant class যেই ক্লাস এর মধ্যে থাকবে সে ওই 
    ক্লাসটাকেই রির্টান করবে। get_class() magic constant method যেই ক্লাস 
    এর অবজেক্ট তৈরি করা হবে ঠিক ওই ক্লাসটাকেই রির্টান করবে।

|| Object Cloning
	আপনি যখন অবজেক্টকে কপি করবেন তখন প্রকৃতভাবে তার রেফারেন্সটা 
    কপি হয়। তো আপনি চাচ্ছেন মেমোরির নতুন একটি জায়গায় নতুন কোন 
    ভ্যালু সেট করতে যেটি আগের ভ্যালুটিকে রিপলেস করবে না তখন এই 
    কোলনিং ব্যবহার করতে হয় 
|| Namespaces
	Namespaces হল virtual directory মত যেখানে একই নামের মালটিপাল 
    ক্লাস,মেথড,কন্সটেন্ট naming conflict এড়িয়ে কাজ করতে পারেন 

|| Strategy Design Pattern
	school management software যেমন স্কুল থেকে গার্ডিয়ানদের কাছে  
    বিভিন্ন সিস্টেমে notification পাঠানো যাবে তো এই ক্ষেত্রে Strategy 
    ছিল email,fax,sms. 

|| Factory Design Pattern
	ক্লাইন্ট বলল একটা সিস্টেম তৈরি করতে যেটা যখন ইচ্ছা তখন আপনি 
    বিভিন্ন ডাটাবেজ ড্রাইবার সাপোর্ট দিতে পারবেন।  

|| Iterator Design Pattern
	একটা ব্লগে অনেকগুলো পোস্ট থাকে এবং পোস্টের অধীনে অনেকগুলো 
    কমেন্ট থাকে। তো এ ক্ষেত্রে পোস্টের জন্য একবার আইটেরেটর আবার ওই 
    পোস্টের কমেন্টের জন্য আইটেরেটর চালাতে হয়। 
|| Observer Design Pattern:
	একটা সিস্টেমের কথা চিন্তা করুন যেখানে যখনি কোন ইভেন্ট সংঘটিত 
    হবে ঠিক তখনি আপনাকে একটা নটিফিকেসন দিবে। এই ধরনের প্রোব্লেম 
    যদি সলভ করতে চান তখন আপনাকে Observer Design Pattern follow 
    করতে হবে।
|| Decorator Design Pattern
	ধরুন ২টা class আছে post class and comment class নামে।
    এই দুইটা class এর মধ্যে same method আছে get_content নামে । 
    আপনি চাচ্ছেন এই মেথডে কোন প্রকার touch ছাড়াই additional কিছু ফাংশন 
    add করবেন। 
|| Facade Design Pattern
	অনেকগুলা object এর একটা common interface দেয়। 
    ধরুন তিনটা অবজেক্ট আছে এবং তিনটা অবজেক্ট তিন রকমের কাজ 
    করছে যা একটা interface থেকে control হচ্ছে ।

strpos, strrpos, substr

$string = "search the position of the first, search the position of the last inside the string";
$search = "position";
$pos = strpos($string, $search);
echo $pos;
echo "<br>";
echo "<br>";

$pos2 = strrpos($string, $search);
echo $pos2;
echo "<br>";
echo "<br>";

$return = substr($string, $pos);
echo $return;

echo "<br>";
echo "<br>";
$return2 = substr($string, $pos2);
echo $return2;

echo "<br>";
echo "<br>";
//Find the position of the last occurrence of "php" inside the string:
echo strrpos("I love php, I love php too!","php");

echo "<br>";
echo "<br>";

//Find the position of the first occurrence of "php" inside the string:
echo strpos("I love php, I love php too!","php");

20. Session

What is a PHP Session?
The web server does not know who you are or what you do, because the HTTP address doesn’t maintain state. Session variables solve this problem by storing user information to be used across multiple pages (e.g. username, favorite color, etc). By default, session variables last until the user closes the browser.

So; Session variables hold information about one single user, and are available to all pages in one application.

Start a PHP Session
A session is started with the session_start() function.

Session variables are set with the PHP global variable: $_SESSION.



	echo isset($_SESSION['name'])?$_SESSION['name']." is available":"The user not Exist";

Destroy a PHP Session
To remove all global session variables and destroy the session, use session_unset() and session_destroy():


	echo isset($_SESSION['name1'])?$_SESSION['name1']." is available":"The user not Exist";