পিএইচপি টিউটোরিয়াল | বেসিক

পিএইচপি এর আগে সার্ভার সাইড স্ক্রিপ্টিং সম্পর্কে একটু জানুন:
আসলে স্ক্রিপ্টিং হচ্ছে প্রোগ্রামের আরেকটা সমার্থক শব্দ।এটা হচ্ছে কিছু instruction এর সেট যেটা run করলে স্বয়ংক্রিয় ভাবে কিছু কাজ হয়।“সার্ভার সাইড” বলতে বুঝানো হচ্ছে এই স্ক্রিপ্ট গুলোকে ইউজারের কম্পিউটার থেকে নিয়ন্ত্রনের বদলে সার্ভার থেকে handle করা।যখন কেউ পিএইচপি ওয়েব পেজ ভিজিট করবে তখন ওয়েব সার্ভার পিএইচপি কোডগুলিকে কিছু Process করবে যেমন:যেটা দেখানো দরকার (Picture,Content etc) সেটা দেখাবে আর যেটাকে লুকানো দরকার (math calculation,file operation etc) তা লুকাবে এবং শেষে HTML এ রুপান্তর করে ইউজারের ওয়েব ব্রাউজারে পাঠাবে।

পিএইচপি কি?:
পিএইচপি (PHP:Hypertext Preprocessor ) একটা সার্ভার সাইড,ক্রস প্লাটফর্ম,HTML-embedded স্ক্রিপ্টিং ল্যাংগুয়েজ।পিএইচপি এর বেশিরভাগ syntax গুলো C,Perl,Java থেকে ধার করা।এই ল্যাংগুয়েজটির উদ্দেশ্য হল ওয়েব পেজ দ্রুত তৈরী করা ডাইনামিকালি।

পিএইচপি শেখার আগে কি জানা থাকা দরকার:
১. এইচটিএমএল
২. C জানা থাকে তাহলে সুবিধা আছে।
কি কি সফটওয়ার প্রয়োজন ?:
যেসব ওয়েব সার্ভার পিএইচপি সাপোর্ট করে সেখানে hosting(জায়গা) নিতে হবে।এ জন্য টাকা গুনতে হবে।
আপাতত শেখার জন্য আমরা নিজের কম্পিউটারেই ওয়েব সার্ভার ইনস্টল করে নেব।এ জন্য নিম্নোক্ত সফটওয়ারগুলি ইনস্টল থাকতে হবে আপনার কম্পিউটারে-
সার্ভার সফটওয়ার
১.একটা পিএইচপি-compitable ওয়েব সার্ভার যেমন: এপাচি
২.পিএইচপি
ক্লাইন্ট সফটওয়ার
১.ওয়েব ব্রাউজার যেমন মজিলা ফায়ারফক্স (এটাতো সবার ইনস্টল দেয়াই আছে)
২.একটা টেক্সট এডিটর যেমন:নোটপ্যাড।আপনি পিএইচপি এর জন্য Specialized এডিটরও ব্যাবহার করতে পারেন।পরে বিস্তারিত আসছি … ।

সিম্ফনিতে (Symfony) কীভাবে কাস্টম ফর্ম তৈরি করা যায়

এই টিউটোরিয়ালে আমি দেখাব সিম্পনিতে (Symfony) কীভাবে কাস্টম ফর্ম তৈরি করা যায় আমি ধরে নিচ্ছি আগে থেকেই কমপ্লিট সিম্ফনি ইন্সটল করা আছে আপনার পিসিতে, যদি
ইন্সটল করা না থাকে তাহলে আমার এই বাংলা ভিডিও তা দেখে নিতে পারেন

এখন,আমার ডিরেক্টরিটা চেঞ্জ করতে হবে যেখানে আমার কমপ্লিট সিম্ফনি ইন্সটল করা আছে
path
আপনার ডিরেক্টরিটা ভিন্ন হতে পারে , কারন আমি এখানে লিনাক্স ব্যবহার করার মাধ্যমে দেখাচ্ছি , তারপর টাইপ করুন

php app/console;

টার্মিনালের মাধ্যমে , আপনে দেখতে পারবেন অনেকগুলো সিম্ফনি কমান্ড

Rasel Khan:~$ php app/console
Symfony version 2.6.4 - app/dev/debug

Usage:
 [options] command [arguments]

Options:
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 --version (-V)        Display this application version
 --ansi                Force ANSI output
 --no-ansi             Disable ANSI output
 --no-interaction (-n) Do not ask any interactive question
 --shell (-s)          Launch the shell.
 --process-isolation   Launch commands from shell as a separate process.
 --env (-e)            The Environment name. (default: "dev")
 --no-debug            Switches off debug mode.

Available commands:
 help                                  Displays help for a command
 list                                  Lists commands
acme
 acme:hello                            Hello World example command
assetic
 assetic:dump                          Dumps all assets to the filesystem
 assetic:watch                         Dumps assets to the filesystem as their source files are modified
assets
 assets:install                        Installs bundles web assets under a public web directory
cache
 cache:clear                           Clears the cache
 cache:warmup                          Warms up an empty cache
config
 config:debug                          Dumps the current configuration for an extension
 config:dump-reference                 Dumps the default configuration for an extension
container
 container:debug                       Displays current services for an application
debug
 debug:config                          Dumps the current configuration for an extension
 debug:container                       Displays current services for an application
 debug:event-dispatcher                Displays configured listeners for an application
 debug:router                          Displays current routes for an application
 debug:swiftmailer                     Displays current mailers for an application
 debug:translation                     Displays translation messages informations
 debug:twig                            Shows a list of twig functions, filters, globals and tests
doctrine
 doctrine:cache:clear-metadata         Clears all metadata cache for an entity manager
 doctrine:cache:clear-query            Clears all query cache for an entity manager
 doctrine:cache:clear-result           Clears result cache for an entity manager
 doctrine:database:create              Creates the configured databases
 doctrine:database:drop                Drops the configured databases
 doctrine:ensure-production-settings   Verify that Doctrine is properly configured for a production environment.
 doctrine:generate:crud                Generates a CRUD based on a Doctrine entity
 doctrine:generate:entities            Generates entity classes and method stubs from your mapping information
 doctrine:generate:entity              Generates a new Doctrine entity inside a bundle
 doctrine:generate:form                Generates a form type class based on a Doctrine entity
 doctrine:mapping:convert              Convert mapping information between supported formats.
 doctrine:mapping:import               Imports mapping information from an existing database
 doctrine:mapping:info                 
 doctrine:query:dql                    Executes arbitrary DQL directly from the command line.
 doctrine:query:sql                    Executes arbitrary SQL directly from the command line.
 doctrine:schema:create                Executes (or dumps) the SQL needed to generate the database schema
 doctrine:schema:drop                  Executes (or dumps) the SQL needed to drop the current database schema
 doctrine:schema:update                Executes (or dumps) the SQL needed to update the database schema to match the current mapping metadata.
 doctrine:schema:validate              Validate the mapping files.
generate
 generate:bundle                       Generates a bundle
 generate:controller                   Generates a controller
 generate:doctrine:crud                Generates a CRUD based on a Doctrine entity
 generate:doctrine:entities            Generates entity classes and method stubs from your mapping information
 generate:doctrine:entity              Generates a new Doctrine entity inside a bundle
 generate:doctrine:form                Generates a form type class based on a Doctrine entity
init
 init:acl                              Mounts ACL tables in the database
orm
 orm:convert:mapping                   Convert mapping information between supported formats.
router
 router:debug                          Displays current routes for an application
 router:dump-apache                    Dumps all routes as Apache rewrite rules
 router:match                          Helps debug routes by simulating a path info match
security
 security:check                        Checks security issues in your project dependencies
server
 server:run                            Runs PHP built-in web server
 server:start                          Starts PHP built-in web server in the background
 server:status                         Outputs the status of the built-in web server for the given address
 server:stop                           Stops PHP's built-in web server that was started with the server:start command
swiftmailer
 swiftmailer:debug                     Displays current mailers for an application
 swiftmailer:email:send                Send simple email message
 swiftmailer:spool:send                Sends emails from the spool
translation
 translation:debug                     Displays translation messages informations
 translation:update                    Updates the translation file
twig
 twig:debug                            Shows a list of twig functions, filters, globals and tests
 twig:lint                             Lints a template and outputs encountered errors
yaml
 yaml:lint                             Lints a file and outputs encountered errors

এখন, নতুন একটা সিম্ফনি বান্ডেল তৈরি করব জেনারেট কমান্ডের ( generate:bundle ) মাধ্যমে। বান্ডেল জেনারেট করতে সমস্যা হলে আমরা সেই বান্ডেলের হেল্প নিব এই

php app/console generate:bundle --help;

কমান্ডের মাধ্যমে, তাহলে সবগুলো কমান্ড দেখাবে কীভাবে তৈরি করতে হবে ।

N:B The bundle namespace must end with “Bundle”.

নীচের স্টেপগুলো অনুসরন করি কীভাবে বান্ডেল এবং ইনটিটি (Entity) তৈরি করতে পারি

স্টেপ -১ নতুন একটা বান্ডেল তৈরি করব একমি ডিরেক্টরির ( Acme directory ) নিচে , সিম্ফনি ইন্সটল করার সময় ডিফল্ট অবস্থায় এই ডিরেক্টরিটা পাবেন । আমার বান্ডেলের নাম হবে টাস্ক-বান্ডেল (TaskBundle)।
এখন টার্মিনালের মাধ্যমে টাইপ করেন

 php app/console generate:bundle --namespace=Acme/TaskBundle;

তারপর এন্টার প্রেস করেন ।

স্টেপ -২ আপনে দেখতে পারবেন আপনার বান্ডেলের নাম , নীচের কোডটার মত

Bundle name [AcmeTaskBundle]:

স্টেপ -৩ তারপর প্রেস এন্টার

Target directory [/var/www/Symfony/src]:

স্টেপ -৪ এই স্টেপে বলে দিতে হবে আপনার বান্ডেলটা কোন ফরম্যাট-এ কনফিগারেশন হবে , আমি বেবহার করছি yml ফরম্যাটে , নীচের কোডটার মত

Configuration format (yml, xml, php, or annotation):yml

স্টেপ -৫ তারপর টাইপ করেন yes , নীচের কোডটার মত

 Do you want to generate the whole directory structure [no]? yes

You are going to generate a “AcmeTaskBundleAcmeTaskBundle” bundle
in “/var/www/Symfony/src/” using the “annotation” format.

স্টেপ -৬ প্রেস এন্টার

Do you confirm generation [yes]?

You saw Bundle generation
Generating the bundle code: OK
Checking that the bundle is autoloaded: OK

স্টেপ -৭ এন্টার প্রেস করতে থাকেন যতক্ষণ না পর্যন্ত এই স্ট্রিং টা দেখায় “You can now start using the generated code! “। নীচের স্টাকচারটা পিকচারটা দেখেন
pic_3

স্টেপ -৮ এখন, আমি নতুন একটা ইনটিটি (Entity) তৈরি এই “doctrine:generate:entity” কমান্ডের মাধ্যমে ।

php app/console doctrine:generate:entity;

স্টেপ -৯ তারপর ইনটিটি (Entity) শর্টকাট নাম চাইবে

 Next The Entity shortcut name like AcmeTaskBundle:Task 

স্টেপ -১০ এই স্টেপে বলে দিতে হবে আপনার ইনটিটি (Entity) ম্যাপিং ইনফর্মেশনটা ( mapping information) কোন ফরম্যাট-এ কনফিগারেশন হবে , আমি বেবহার করছি yml ফরম্যাটে ।

Configuration format (yml, xml, php, or annotation) [annotation]:yml

আপনার কমপ্লিট ফাঁকা একটা ইনটিটি (Entity) শুরু হয়ে গেল, এখন আপনার মনের মতন করে কিছু ফিল্ড বা ফাংশন অ্যাড করে নেন ।
বি : দ্র আপনার ফিল্ড তৈরি করার পর প্রাইমারি কী (primary key) অটোমেটিক অ্যাড হয়ে যাবে, এটা নিয়ে আপনার ভাবতে হবে না

কমপ্লিট ইন্সটল হওয়ার পর ওপেন করেন Task.php ফাইল এবং অ্যাড করেন নীচের কোডটা

<?php
 namespace AcmeTaskBundleEntity; 
 
 class Task {  

	 protected $task;  
 	 protected $dueDate; 
 
	 public function getTask()     { 

         return $this->task;
	}

	public function setTask($task){
 
  		$this->task = $task;
 	}
 
     public function getDueDate(){
 
  		return $this->dueDate;
	}
 
 	public function setDueDate(DateTime $dueDate = null){
 		$this->dueDate = $dueDate;
 	}
}
 ?>

টাস্ক Task নামে একটা ক্লাস তৈরি করলাম পুরাতন পিএইচপি অবজেক্ট-এর মত এবং সাথে কিছু ফাংশন আছে ……………।।
বি : দ্র এই কোডটা সম্বন্ধে বেশী কিছু বললাম না, আমি ধরে নিচ্ছি যারা সিম্ফনি নিয়ে কাজ করতে আসছেন বা চান তারা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাল ধারনা রাখেন

এখন, ওপেন করুন DefaultController.php ফাইল আন্ডার AcmeTaskBundleController ডিরেক্টরি এবং নীচের কোডটা অ্যাড করেন

 <?php
 // src/Acme/TaskBundle/Controller/DefaultController.php
 namespace AcmeTaskBundleController;

 use SymfonyBundleFrameworkBundleControllerController;
 use AcmeTaskBundleEntityTask;
 use SymfonyComponentHttpFoundationRequest;

 class DefaultController extends Controller{
 
 		public function formAction(Request $request){
 
 			$task = new Task();
 			$task->setTask('Write a blog post');
 			$task->setDueDate(new DateTime('tomorrow'));

 			$form = $this->createFormBuilder($task)
     			->add('task', 'text')
 				->add('dueDate', 'date')
 				->add('save', 'submit', array('label' => 'Create Post'))
 				->getForm();
 
 				return $this->render('AcmeTaskBundle:Default:new.html.twig',   array(
 					'form' => $form->createView(),
 				));
 		}
 }
 ?> 

আমি নতুন একটা রাউট (Route) তৈরি করে নিয়েছি form(ফর্ম ) নামে , লাইন নাম্বার ১১ তে দেখুন formAction এই ফাংশনটা কাজ করবে যখন ব্রাউজারে এই yoursite.com/form টা পাস হবে ,
এই এক্সামপলটা দেখাবে কীভাবে আপনার ফর্ম ডিরেক্টরিটা তৈরি হবে কন্ট্রোলারের (controller) মধ্য , ফর্মের জন্য আপনার দুইটা ফিল্ড আছে টাস্ক (task) এবং
ডিউডেট (dueDate) লাইন নাম্বার ১৮, ১৯ এবং এদের প্রপার্টিগুলো আছে ইনটিটি Task.php ক্লাসে , ৫ নাম্বার লাইন -এ অ্যাড করেছি আমি use AcmeTaskBundleEntityTask; এটা অ্যাড করার ফলে আমি Task ক্লাসের প্রপার্টিগুলো ব্যবহার করতে পারছি,

এখন আপনার ফর্ম তৈরি হয়ে গেল , তারপর এটাকে আমি render করে দিব অন্য একটা টেমপ্লেট-এ দেখানোর জন্য , ইহা সাকসেস হয় ভিউ (“view”) অবজেক্ট-এর মাধ্যমে , ফর্মের কিছু হেল্পার ফাংশন বেবহার করব ফর্মটা দেখানোর জন্য , ওপেন করুন এই src/Acme/TaskBundle/Resources/views/Default ডিরেক্টরিটা, এখানে নতুন একটা ফাঁকা টুয়িগ(twig) টেমপ্লেট তৈরি করেন ( form.html.twig) নামে, তারপর নীচের কোডটা অ্যাড করেন

 
{{ form(form) }}
 

এক্সামপলটা আপনি ফর্ম সাবমিট করতে পারবেন পোস্ট (POST) রিকুয়েস্টের মাধ্যমে এবং একই ইউ-আর-এল (URL) ইহা ডিসপ্লে করবে । পরবর্তীতে দেখাব কীভাবে Request ( রেকুএস্তে ) Method (ফাংশন) পরিবর্তন করা যায় .

এখন, প্রয়োজন ইউজারের কাছ থেকে ডাটা সাবমিট করা , ইউজারটা অবশ্যই রাইট করবে ফর্মের মধ্য , এর জন্য কন্ট্রোলারে ( Controller) কিছু ফাংশন অ্যাড করে নিব , নীচের কোডটা দেখেন ।

 <?php

 $form->handleRequest($request);

	if ($form->isValid()) {

		return $this->redirect($this->generateUrl('task_success'));
 	}
 ?> 

এই handleRequest() ফাংশনটা প্রবর্তিত হয় Symfony 2.3 তে , Request ( রিকুয়েস্টে ) টা গৃহীত হবে সাবমিট ফাংশন ধারা ..

এখন, ফর্ম-এর ইনপুট ফিল্ড-এ ডাটা ইনপুট শেষ হলে যখন আমি সাবমিট বাটনে ক্লিক করব, তখন অন্য আরেকটা রাউট-এ (Route) রিডাইরেক্ট (Redirect) করবে , এটা করার জন্য আমি কন্ট্রোলারের ( Controller) মধ্য isClicked() ফাংশনটা ব্যবহার করব, নীচে দেখুন

<?php
  
 	if ($form->isValid()) {
 
		$nextAction = $form->get('save')->isClicked()
 				? 'task_success'
 				: 'task_fail';
		return $this->redirect($this->generateUrl($nextAction));
 	}
?>

এখানে, ইউজার যখন ফর্মটা সাবমিট করবে তখন এটা ভ্যালিড কিনা তা চেক করে নিলাম isValid() ফাংশনের মাধ্যমে , তারপর আমি Condition দিলাম যদি ক্লিকএবল এবং ভ্যালিড হয় তখন সে /task_success রাউট-এ (Route) রিডাইরেক্ট (Redirect) করবে , আর যদি ভ্যালিড না হয় /task_fail রাউট-এ (Route) রিডাইরেক্ট (Redirect) করবে।

আমি এখানে forward() ফাংশনটা ব্যবহার করেছি দুইটা রাউট-এর জন্য
For task_new:

$this->forward('AcmeTaskBundle:Default:task_new');

For task_success:

 $this->forward('AcmeTaskBundle:Default:task_success'); 

এই হচ্ছে সিম্পল একটা ফর্ম তৈরি সিম্ফনিতে , কারও কোন প্রব্লেম হলে পোস্টের নীচে কমেন্ট করবেন , সবাই ভাল থাকবেন !!

Twitter Api

In this tuts I’m going to show now how to add or create embeddable timelines twitter api in your website, make it easy to syndicate any public Twitter timeline to your website with one line of code.

Create an embedded timeline from your widgets settings page on twitter.com, or choose Create an embedded timeline from the options menu on profile, search and collection pages. You must should login by your Username && Password on your account.Just like timelines on twitter.com, embeddable timelines are interactive and enable your visitors to reply, Retweet, and favorite Tweets directly from your pages. You can Embedded Timeline individual users, User can added at any time this he/her Websites. Each user timeline includes a follow button in the header, allowing website visitors to follow the account with one-click

Here’s @raselkhancse timeline embedded directly into this page:

This tweets create’s are any public Twitter user, and displays that user’s favorited Tweets.
All the list display the each user by reply their post or comment.
Here’s an example embed code:

<a class="twitter-timeline"
 href="https://twitter.com/raselkhancse"
 data-widget-id="YOUR-WIDGET-ID-HERE">
 Tweets by @raselkhancse
 </a>
 <script type="text/javascript">
 window.twttr = (function (d, s, id) {
 var t, js, fjs = d.getElementsByTagName(s)[0];
 if (d.getElementById(id)) return;
 js = d.createElement(s); js.id = id; js.src= "https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);

return window.twttr || (t = { _e: [], ready: function (f) { t._e.push(f) } });
 }(document, "script", "twitter-wjs"));
 </script>

If you’re already including our ‘widgets.js’ JavaScript in your page to show embedded Tweets or Twitter buttons, you don’t need to include this script again; it updates automatically to support new features.

<a
href="https://twitter.com/raselkhancse"
data-widget-id="YOUR-WIDGET-ID-HERE">
Tweets by @raselkhancse
</a>

Here the anchor link include attributes href & data-widget, you can many attributes added in your future application like as height, width, data-theme, data-link-color, data-related,
data-aria-polite, custom-timeline-id………etc.

width="300"
height="500"
data-widget-id="YOUR-WIDGET-ID-HERE"
data-screen-name="raselkhan"
data-show-replies="false"
data-tweet-limit="5"
data-list-owner-screen-name="raselkhan"
data-list-slug="twitter-dev-advocates"

This attributes data-widget indicate in your application id i.e ( data-widget-id=”653452336445443033455584″ ) you’ll get this id from in your account, your ID will showing different number

You should configure a timeline widget from your settings page as normal. Then, use the following attributes to override the source timeline:

  • Users: Add the data-screen-name or data-user-id attribute for the user whose timeline you want to display. You can also specify data-show-replies=”true” to toggle the ‘Show Replies’ option on a per-timeline basis.
  • Collections: Add a data-custom-timeline-id attribute for the custom collection timeline you want to render. Use only the integer portion of the timeline ID.
  • Favorites: Similarly to user timelines, add a data-favorites-screen-name or data-favorites-user-id attribute for the favorites timeline you want to render.
  • Lists: To render a list, you must specify the list owner—data-list-owner-screen-name or data-list-owner-id—and a list identifier, data-list-id or data-list-slug.

All Like other components of the Twitter for Websites suite, embeddable timelines offer excellent mobile browser support:

  • Works on major smartphone browsers.
  • Interface is adaptive for touch (e.g. actions will always be visible, and spacing adjusted.)
  • Graphics optimized for Retina and other high-density displays.
  • Uses web intents for interaction, which also are designed adaptively for mobile.
  • Mobile device support is automatic, using the same embed code.

Laravel 4 install & configuration

At first need composer setup, open your terminal , I’m using git bash use command below by terminal

curl -sS https://getcomposer.org/installer | php

you can showing downloading running… when download complete then use command

php composer.phar

see below many commands

Rasel Khan:~$ composer
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ / __ `__ / __ / __ / ___/ _ / ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
____/____/_/ /_/ /_/ .___/____/____/___/_/
                    /_/
Composer version 1.0-dev (8e9659bd8317ad3f623c4d17940380443cf8772c) 2015-06-14 09:10:46

Usage:
 command [options] [arguments]

Options:
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 --version (-V)        Display this application version
 --ansi                Force ANSI output
 --no-ansi             Disable ANSI output
 --no-interaction (-n) Do not ask any interactive question
 --profile             Display timing and memory usage information
 --working-dir (-d)    If specified, use the given directory as working directory.

Available commands:
 about            Short information about Composer
 archive          Create an archive of this composer package
 browse           Opens the package's repository URL or homepage in your browser.
 clear-cache      Clears composer's internal package cache.
 clearcache       Clears composer's internal package cache.
 config           Set config options
 create-project   Create new project from a package into given directory.
 depends          Shows which packages depend on the given package
 diagnose         Diagnoses the system to identify common errors.
 dump-autoload    Dumps the autoloader
 dumpautoload     Dumps the autoloader
 global           Allows running commands in the global composer dir ($COMPOSER_HOME).
 help             Displays help for a command
 home             Opens the package's repository URL or homepage in your browser.
 info             Show information about packages
 init             Creates a basic composer.json file in current directory.
 install          Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
 licenses         Show information about licenses of dependencies
 list             Lists commands
 remove           Removes a package from the require or require-dev
 require          Adds required packages to your composer.json and installs them
 run-script       Run the scripts defined in composer.json.
 search           Search for packages
 self-update      Updates composer.phar to the latest version.
 selfupdate       Updates composer.phar to the latest version.
 show             Show information about packages
 status           Show a list of locally modified packages
 update           Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file.
 validate         Validates a composer.json

If you want globally install it then use command mv composer.phar /usr/bin/composer Now, you have composer install globally !!

At this time needs laravel install & downloading, change your directory where you want install it, My directory changes for Desktop ! type command

Rasel Khan:~: cd ~/Desktop 

and with create a new directory called (laravel_lesson) mkdir laravel_lessson then change this directory user command

Rasel Khan:~$ cd laravel_lesson 

Now install laravel by composer use command

composer create-project laravel/laravel your-project-directtory-name 

This (your-project-directtory-name) means laravel_lesson directory, Because before I create directory Desktoplaravel_lesson, So finally command use

composer create-project laravel/laravel laravel_lesson

You can show all laravel files downloading running…. When download complete then you need third party dependency
Now, use command

composer update 

You have all files downloaded into laravel_lesson directory

Now you need server running use command

Rasel Khan:~$ php artisan serve
Laravel development server started on http://localhost:8000/

Finally you showing by browser complete install laravel 4 !!

গিট কনফিগারেশন সাবলাইম টেক্সট ২

আমরা অনেকেই গিট নিয়ে কাজ করি , কিন্তু অনেকেই জানি না গিট এর মাধ্যমে কিভাবে সাবলাইম টেক্সট এডিটর ওপেন করা যায় , আজকে আমরা  দেখব !

প্রথমেই গিট ডাউনলোড করে নিতে হবে এখান  থেকে , আমি ইন্সটল করেছি  এই

 C:Program Files (x86)Git 

লোকেশান- এ, তারপর ওপেন করুন যে কোন এডিটর আমি ওপেন করছি  Sublime Text 2 নতুন একটা ফাইল ওপেন করুন টাইপ করেন

#!/bin/sh
C:Program Files (x86)Sublime Text 2sublime_text.exe" $1

ফাইলটা সেভ করেন

subl

নামে কোন এক্সটেন্সান ছাড়া, তারপর এই subl ফাইলটা কপি করে পেস্ট করেন bin ফোল্ডারে, bin ফোল্ডার পাবেন  

C:Program Files (x86)Gitbin 

এখন ওপেন করেন  Git Bash or Terminal টাইপ করেন

pwd 

 আপনার লোকেশান দেখাবে।

তারপর টাইপ করেন

subl .

আপনার সাবলাইম টেক্সট এডিটর ওপেন হবে ……!!!

Install photoshop cs6 on ubuntu 14.04

Step 1. Install the Wine Team Ubuntu PPA

First start by installing Wine btw it’s a utility to install windows apps in linux :

open the Terminal and :

sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install wine1.7 winetricks

Step 2. Using winetricks to get install dependencies for Photoshop CS6

Now that we have the most recent build of wine, we can get started on fetching the necessary build packages to run the Photoshop installer.

Here’s the command to issue and pull those dependencies

winetricks atmlib gdiplus msxml3 msxml6 vcrun2005 vcrun2005sp1 vcrun2008 ie6 fontsmooth-rgb gecko

If a few errors pop-up, don’t worry – chances are this install will still work.

Step 3. Running the Photoshop CS6 installer

Now that you have all dependencies required to run Photoshop CS6, you can now run the Adobe setup. Either right click Setup.exe, or from the terminal:

   cd /home/user/path/to/installer    
   wine Set-up.exe

If everything worked as intended, you are now done. Photoshop should install like any other program via wine – It should even automatically appear in your programs list!

How to remove PATH variable on Ubuntu

the PATH stores all the places where the terminal looks for your applications/scripts etc… If you set the PATH to some “unfriendly” directory, the system will not be able to find /bin/sudo and others. You will have to type the whole path like /bin/sudo. The best way to fix this is to open your bash_profile and insert this line:

 
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games 

I think changing the profile will work just after the next reboot, so do this and after that use the command

 export 
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games 

to fix it for the current session.

You’ll still be left without a PATH that includes the necessary system directories. When you set your own PATH, in most cases you will want to append your new entry to the old PATH variable, not replace it entirely, as you have done.

Set your PATH variable back to the system default by typing

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

and then go edit your .bashrc and .bash_profile to have the correct entry, which will be something like

export PATH="$PATH:~/.composer/vendor/bin"

Notice the variable is set to begin with the existing $PATH. This way, you’ll still have all the original system directories in your PATH, and your addition will be on the end. Also note that I removed lumen from the end of your example, because lumen is apparently the name of the binary you are trying to execute, and your PATH should include only directories containing binaries, not the binaries themselves.

Add custom meta box in WordPress

You want to custom meta box add in your theme or plugin? if you want let’s go how to development this meta box, wordpress all functions include your “functions.php” file in your theme and also working with your plugin, open “functions.php” file in your theme and include “add_action()” method

add_action('add_meta_boxes', 'my_meta_box');

here, two parameter pass first one hook name and second one method name, now need to create your custom method

function my_meta_box(){

}

after method create need to meta box initialization look like

function my_meta_box(){

	add_meta_box( 'custom-meta-box', 
		          'Custom Post Metabox',
		           'display_meta_box', 
		           'post',
		           'normal',
		           'low'
		             );
}

If you’re not familiar this method see wordpress Codex for details description !

i’ve third parameter for “display_meta_box” method

 function display_meta_box($post){
  // code here
}

after create this function need to form create for your input field

function display_meta_box($post){
  wp_nonce_field('meta_action', 'meta_box_name_field'); 
	$html = '';
	$html .= '<label for="mp3_title">';
	$html .= 'Add Mp3';
	$html .= '</label>';
	$html .= '<input type="text" name="mp3_title" id="mp3_title" class="widefat" value="' .get_post_meta($post->ID, 'mp3_title', true).'" placeholder="Enter your mp3 title">';
	$html .= '<label for="mp3_file">';
	$html .= 'Mp3 File';
	$html .= '</label>';
	$html .= '<input type="file" name="mp3_file" id="mp3_file">';

	echo $html;
}

I’ve two input field create, when you’ll submit this form you’ll need to save this post, so create save post action, i’m using “save_post”….

add_action('save_post', 'save_meta_box');

now new method name “save_meta_box” for saving post from user, so let’s go create new method

function save_meta_box($post_id){
// Code here
}

after create this method now need to check autopost in wordpress, i’ve create new method name “can_save_post”

function save_meta_box($post_id){
// this method check to autosave
if(can_save_post($post_id, 'meta_box_name_field')){
}

}

Now check this function…

function can_save_post($post_id, $nonce){
	$autosave = wp_is_post_autosave($post_id);
	$revision = wp_is_post_revision($post_id);
    $valid = (isset($_POST[$nonce]) && wp_verify_nonce($_POST[$nonce], 'meta_action'));

    return !($autosave || $revision) && $valid;

}

Finally check “save_meta_box” method from user. see below

function save_meta_box($post_id){
	if(can_save_post($post_id, 'meta_box_name_field')){

        if(isset($_POST['mp3_title']) && 0 < count(strlen(trim($_POST['mp3_title'])))){
				$mp3_title = $_POST['mp3_title'];
				update_post_meta( $post_id, 'mp3_title', $mp3_title);
		}
		if(isset($_POST['mp3_file']) && !empty($_POST['mp3_file'])){

			print_r($_POST['mp3_file']);
			// wp_upload_bits( $name, $deprecated, $bits, $time );

			wp_upload_bits( $_FILES['mp3_file']['name'], null, file_get_contents( $_FILES['mp3_file']['tmp_name']) );
		}
	}
}

now need to display this content, so create new hook “the_content”

add_action('the_content', 'display_meta_box_content');

Finally display this content in front page

function display_meta_box_content($content){

 if(is_single()){
 	$html = 'This is metx box title' . get_post_meta(get_the_ID(), 'mp3_title', true);
 	$html .= 'This is Path url is =' . get_post_meta(get_the_ID(), 'mp3', true);

 	$content .= $html;
 }
return $content;
}

Enjoy it 🙂

জাভাস্ক্রিপ্ট কোড কোথায় থাকবে

তিনটি সাধারন অবস্থান রয়েছে যেখানে জাভাস্ক্রিপ্ট কোডকে রাখা যায় ।

  1. head ট্যাগ এর ভিতরে
  2. body ট্যাগ এর মধ্যে
  3. বহিঃস্থ (external) file হিসাবে

head or body এর অবস্থান পছন্দ করা খুব সাধারন। যদি আপনি চান জাভাস্ক্রিপ্ট কে কিছু event (যেমন যখন কোন ব্যবহারকারী কোন স্থানে ক্লিক করবে, event সম্বন্ধে আলোচনা করা হয়েছে) এর উপর রান করাবেন সেক্ষেত্রে আপনি জাভাস্ক্রিপ্ট কে head ট্যাগ এ রাখতে পারেন।

আবার যদি আপনি জাভাস্ক্রিপ্ট কে রান করাতে চান যখন পেজ লোড হবে (পুর্ববতি অধ্যায়ের “Hello World!” উদাহরনের মত),সেক্ষেত্রে আপনি জাভাস্ক্রিপ্ট কে body ট্যাগ এর মধ্যে রাখতে পারেন।

বহিঃস্থ (External) জাভাস্ক্রিপ্ট ফাইল এবং তাদের ব্যবহার পরবর্তি অধ্যায়ে আলোচনা করা হয়েছে ।
Head Script এর উদাহরন:

যেহেতু আমরা দেখেছি যে এক প্রকারের Script যা body tag এর মধ্যে লেখা যায়। আমরা কিছু Script লিখবো যার মাধ্যমে কিছু event সংঘটিত হবে ।যেমন ব্যবহারকারী যখন বাটনে ক্লিক করবে তখন alert box দেখাবে।

<html>

<head>

<script type="text/JavaScript">

<!--

function popup() {

alert("Hello World")

}

//-->

</script>

</head>

<body>

<input type="button" onclick="popup()" value="popup">

</body>

</html>

popup প্রদর্শন:

আমরা একটা ফাংশন তৈরী করেছি যার নাম পপআপ এবং এটাকে এইচটিএমএল ডকুমেন্ট এর head ট্যাগ এ রেখেছি ।এখন আমরা যতবারই বাটনে ক্লিক করবো ততবারই “Hello World!” নামের alert box দেখাবে। পরবর্তি অধ্যায়গুলিতে ফাংশন এবং event সম্বন্ধে বিস্তারিত আলোচনা করা হয়েছে ।

জাভাস্ক্রিপ্ট সক্রিয় করা

এ অধ্যায়ে আপনাদের দেখাবো কিভাবে জাভাস্ত্রিপ্ট ইন্টারনেট এক্সপ্লোরার,ফায়ারফক্স, এবং অপেরা তে সচল (active) করতে হয়।
জাভাস্ক্রিপ্ট কে ইন্টারনেট এক্সপ্লোরার- এ সচল করারপদ্ধতি:

Internet Explorer 6/7 এ আপনি security setting এ গিয়ে check করতে পারেন যে আপনার জাভাস্ত্রিপ্টটি কি সচল রয়েছে কিনা। নিচে জাভাস্ত্রিপ্ট সচল করার উপায় দেয়া হলো।

  1. প্রথমে Tools menu তে Click করতে হবে
  2. তারপর menu হতে Internet Options নির্বাচন করতে হবে
  3. Internet Options এর Security tab এ Click করতে হবে
  4. তারপর Custom Level বাটনে Click করে security settings এ প্রবেশ করতে হবে
  5. Scroll করে Scripting section এ যেতে হবে
  6. script সচল করা জন্য Enable বাটন Select করতে হবে
  7. প্রক্রিয়াটি সম্পন্ন করতে OK বাটনে Click করতে হবে
  8. প্রক্রিয়াটি সম্পন্ন করার জন্য Yes বাটনে Click করতে হবে

জাভাস্ক্রিপ্ট কে ফায়ারফক্স- এ সচল করারপদ্ধতি:

Firefox 2 এ আপনি Options এর Content setting এ গিয়ে check করতে পারেন যে আপনার জাভাস্ত্রিপ্টটি কি সচল রয়েছে কিনা। নিচে জাভাস্ত্রিপ্ট সচল করার উপায় দেয়া হলো।

  1. প্রথমে Tools menu তে Click করতে হবে
  2. তারপর menu হতে Options নির্বাচন করতে হবে
    1. Options এর Content tab এ Click করতে হবে
    2. নিশ্চিত করুন যে Enable JavaScript check box এ টিক দেয়া আছে কিনা
    3. প্রক্রিয়াটি সম্পন্ন করতে OK বাটনে Click করতে হবে

    জাভাস্ক্রিপ্ট কে অপেরা – তে সচল করারপদ্ধতি:

    Opera তে আপনি Preferences এর Content setting এ গিয়ে check করতে পারেন যে আপনার জাভাস্ত্রিপ্টটি কি সচল রয়েছে কিনা। নিচে জাভাস্ত্রিপ্ট সচল করার উপায় দেয়া হলো।

    1. প্রথমে Tools menu তে Click করতে হবে
    2. তারপর menu হতে Preferences নির্বাচন করতে হবে
    3. Preferences এর Advanced tab এ Click করতে হবে
    4. বাম পাশের লিস্ট item হতে Content নির্বাচন করতে হবে
    5. নিশ্চিত করুন যে Enable JavaScript check box এ টিক দেয়া আছে কিনা
    6. প্রক্রিয়াটি সম্পন্ন করতে OK বাটনে Click করতে হবে