Anzeige
Anzeige

Más contenido relacionado

Anzeige
Anzeige

Laravel development (Laravel History, Environment Setup & Laravel Installation MVC architecture, Basic Authentication)

  1. To My Presentation on Laravel Development
  2. Introduction Muhammad Mahdi Hasan  B.Sc. in Computer Science & Engineering from International University of Business Agriculture & Technology  Currently working as a laravel developer in Creative Software Ltd.
  3. 1st part
  4. I. Laravel History, Environment Setup & Laravel Installation II. MVC architecture, Basic Authentication & Routing III. Laravel Template Mastering & CRUD Operation IV. Laravel Role Implementation, File storage & Middleware V. Eloquent ORM & Query Builder, Cart, Session & Others Content
  5.  Implement laravel project & database connection  Know how MCV architecture pattern works  Know how to create, read, update & delete data from MySql database with laravel project  Basic authentication & role implementation  Laravel project upload online demo Our Goals
  6. Laravel History, Environment Setup & Laravel Installation
  7. Laravel is a free, open-source PHP web framework, created by Taylor Otwell and intended for the development of web applications following the model–view– controller (MVC) architectural pattern. What Is Laravel ?
  8. Developer(s) Taylor Otwell Initial release June 2011; 8 years ago [1] Stable release 6.9.0 [2] / 2019-12-19[±] Written in PHP Type Web framework License MIT License Website laravel.com • The source code of Laravel is hosted on GitHub and licensed under the terms of MIT License.
  9. History Taylor Otwell created Laravel as an attempt to provide a more advanced alternative to the CodeIgniter framework, which did not provide certain features such as built-in support for user authentication and authorization. Laravel's first beta release was made available on June 9, 2011, followed by the Laravel 1 release later in the same month.
  10. Why Should We Choose Laravel?  Authorization Technique  Object-Oriented Libraries  Artisan  MVC Support  Security  Database Migration  Great Tutorials (Laracasts)  Blade Templating Engine  Responsible Interface  Automatic Package Discovery
  11. Installing Laravel
  12. Installation Server Requirements Install Composer Install Laravel Configuration
  13.  PHP >= 7.2.0  BCMath PHP Extension  Ctype PHP Extension  JSON PHP Extension  Mbstring PHP Extension  OpenSSL PHP Extension  PDO PHP Extension  Tokenizer PHP Extension  XML PHP Extension Server Requirements
  14. Installing Composer Laravel utilizes Composer to manage its dependencies. So, before using Laravel, make sure you have Composer installed on your machine.
  15. Installing Laravel There Are 2 ways to install laravel project: • Via Laravel Installer • Via Composer Create-Project
  16. • Via Laravel Installer First, download the Laravel installer using Composer than : composer global require laravel/installer laravel new blog • Via Composer Create-Project Alternatively, you may also install Laravel by issuing the Composer create-project command in your terminal: composer create-project --prefer-dist laravel/laravel blog • Note Above commands will install the latest versions of laravel so if you want to specify a version, you can use composer: composer create-project laravel/laravel=5.8 myapp
  17. Configuration Public Directory Configuration Files Directory Permissions Application Key Additional Configuration
  18. 1st part End
  19. 2nd part
  20. MVC architecture, Basic Authentication & Routing
  21. What Is MVC ?
  22. The Model-View-Controller (MVC) is an architectural pattern that separates an application into three main logical components: the model, the view, and the controller. Each of these components are built to handle specific development aspects of an application. MVC is one of the most frequently used industry-standard web development framework to create scalable and extensible projects.
  23. Basic Authentication Install the laravel/ui Composer package and run php artisan ui vue --auth in a fresh Laravel application. After migrating your database, navigate your browser to http://your-app.test/register or any other URL that is assigned to your application. These commands will take care of scaffolding your entire authentication system!
  24. In laravel, there are 2 routes file web.php and api.php.  web.php file is used for registering all the web routes like - mywebsite.com/about or mywebsite.com/contact  api.php is used for registering all the routes related to an api. We are only using web routes so don’t worry about any api routes. Routing
  25.  Route: Route::get('/', function () { return view('welcome'); }); Route::post('/product-create', 'ProductController@create') ->name('productcreate'); Route::get('/product-index','ProductController@index')->name('productindex'); Route::post('/product-update', 'ProductController@update') ->name('productupdate'); Route::get('/product-edit', 'ProductController@edit')->name('productedit'); Route::get('/product-delete', 'ProductController@delete') ->name('productdelete');
  26. Laravel Project Structure
  27. app −This directory contains the core code of the application. bootstrap −This directory contains the application bootstrapping script. config −This directory contains configuration files of application. database −This folder contains your database migration and seeds. public −This is the application’s document root. It starts the Laravel application. It also contains the assets of the application like JavaScript, CSS, Images, etc.
  28. resources −This directory contains raw assets such as the LESS & Sass files, localization and language files, and Templates that are rendered as HTML. storage −This directory contains App storage, like file uploads etc. Framework storage (cache), and application-generated logs. test −This directory contains various test cases. vendor −This directory contains composer dependencies.
  29. 2nd part End
  30. 3rd part
  31. Template Mastering & CRUD Operation
  32. Template Mastering The Blade Master Template is where we can place all the boilerplate that all pages will typically make use of. Most times you can name this file something like master.blade.php. All view files that you would like to have make use of your master page can now use the @extends keyword to do so. Since our master page has the name of master.blade.php, in our view files we will use @extends('master'). You can name the master page something else if you want to, you’ll just need to make sure to extend the other name. For example if your master page is default.blade.php, you can use @extends(‘default‘) in your view files.
  33. CRUD Operation
  34. $ php artisan make:model Product protected $fillable = [ 'field_1', 'field_2', ‘field_3‘ ]; Migration : Schema::create('products', function (Blueprint $table) { $table->increments('id'); $table->string('field_1'); $table->text('field_2'); $table->integer(field_3'); $table->timestamps(); }); $ php artisan migrate $ php artisan make:migration create_products_table Model :
  35. $ php artisan make:controller ProductController public function index() { return view('product_index'); } public function create() { $data = new Product (); $data->field_1 = $request->field_1; $data->field_2 = $request->field_2; $data->field_3 = $request->field_3; $data->save(); return redirect('/products'); } Controllers :
  36. public function edit($id) { $product = Product::find($id); return response()->json($product); } public function update() { $data = Product::find($request->id); $data->field_1 = $request->field_1; $data->field_2 = $request->field_2; $data->field_3 = $request->field_3; $data->save(); return redirect()->back(); } Controllers :
  37. Controllers : public function delete($id) { $product = Product::find($id); $product->delete(); return redirect()->back(); }
  38. 3rd part End
  39. 4th part
  40. Role Implementation, File storage & Middleware
  41. In many web projects, we have different user roles interacting with the system. Each role has its own permission. Every feature of the system can be enabled or disabled for these roles. We can define users permissions in our codes and check if they are authorized to do the requested action or not. A better way, mostly in more flexible systems, is to create a role and authorization management system. I’ll explain how to implement a Laravel authorization system and define users permission based on their roles. Implementing User Roles into a Laravel Application. User Roles allow us to control access to a page or feature within an application. Role Implementation
  42. Gate: Gates are Closures that determine if a user is authorized to perform a given action and are typically defined in the App Providers AuthServiceProvider class using the Gate facade. public function boot(GateContract $gate) { $this->registerPolicies($gate); $gate->define('isAdmin', function($user) { return $user->user_type == '0'; }); $gate->define('isCompany', function($user) { return $user->user_type == '3'; }); $gate->define('isUser', function($user) { return $user->user_type == '1'; }); }
  43. Store a File $this->validate($request,[ 'image'=> 'required|image|mimes:jpeg,png,jpg|' ]); if ($request->hasFile('image')) { $image = $request->file('image'); $imagename = uniqid().$image->getClientOriginalName(); $uploadPath = 'public/Product/'; $image->move($uploadPath,$imagename); $imageUrl = $uploadPath.$imagename; } else { $imageUrl = null; } $post = new Product(); $post->title = $request->name; $post->image = $imageUrl; $post->save(); return redirect()->back();
  44. Middleware provide a convenient mechanism for filtering HTTP requests entering your application. For example, Laravel includes a middleware that verifies the user of your application is authenticated. If the user is not authenticated, the middleware will redirect the user to the login screen. However, if the user is authenticated, the middleware will allow the request to proceed further into the application. Middleware
  45. 4th part End
  46. 5th part
  47. Eloquent ORM & Query Builder
  48. The Eloquent ORM included with Laravel provides a beautiful, simple Active Record implementation for working with your database. Each database table has a corresponding "Model" which is used to interact with that table. Models allow you to query for data in your tables, as well as insert new records into the table. Eloquent ORM
  49. Laravel's database query builder provides a convenient, fluent interface to creating and running database queries. It can be used to perform most database operations in your application and works on all supported database systems. Query Builder
  50. Cart, Session & Others
  51. Laravel Shopping cart Run the Composer require command from the Terminal: composer require gloudemans/shoppingcart GloudemansShoppingcartShoppingcartServiceProvider::class 'Cart' => GloudemansShoppingcartFacadesCart::class, Check & and optionally add a new line to the aliases array: Check & add a new line to the providers array: Gloudemans Shoppingcart is a simple shoppingcart implementation for Laravel.
  52. public function addtocart(Request $request) { $products=Product::find($request->id); Cart::add([ 'id'=>$request->id, 'qty'=>$request->qty, 'name'=>$products->productname, 'price'=>$products->price, 'options' => [ 'image' => $products->image ] ]); return back()->withInput(); } public function cartshow() { $cartProduct = Cart::content(); $cartCount = Cart::count(); return view(‘ViewPage',compact(‘cartProduct’,‘cartCount’); }
  53. public function update(Request $request) { Cart::update($request->rowId, $request->qty); return redirect()->back(); } public function delete($id) { Cart::remove($id); return redirect()->back(); } Cart::destroy(); Cart::total(); Cart::subtotal(); Cart::count();
  54. Session Since HTTP driven applications are stateless, sessions provide a way to store information about the user across multiple requests. Laravel ships with a variety of session backends that are accessed through an expressive, unified API. Support for popular backends such as Memcached, Redis, and databases is included out of the box. The session configuration file is stored at config/session.php. Be sure to review the options available to you in this file. @if(session(‘message')) <div class="alert alert-dismissible alert-success"> <button type="button" class="close" data-dismiss="alert">×</button> <strong>{{ session(‘message') }}</strong> </div> @endif
  55. 5th part End
  56. References :  https://laravel.com/  https://en.wikipedia.org/wiki/Laravel/  https://laracasts.com/  https://medium.com/techcompose/  https://github.com/Crinsane/LaravelShoppingcart  https://blog.pusher.com/laravel-mvc-use/  https://getcomposer.org/download/  https://laravel.com/docs/5.8/authentication  https://www.tutorialspoint.com/laravel/index.htm
Anzeige