SlideShare a Scribd company logo
LARAVEL 101
Commit University
IONUT TANASA
LARAVEL
A free, open source, MVC web-application framework
2011 (v1.0) — current (v5.0.26)
Package-based dependency management
 laravel.com
GETTING STARTED
PREREQUISITES
PHP 5.4.x
Mcrypt extension
JSON extension
Composer
and install it globally!




 getcomposer.org
YOUR FIRST PROJECT
STARTING A NEW PROJECT
composer global require "laravel/installer=~1.1"
laravel new blog
composer create-project laravel/laravel my-project --prefer-dist
git clone git@github.com:laravel/laravel.git my-project
cd my-project
composer install
curl -L -O https://github.com/laravel/laravel/archive/master.zip
unzip master.zip
mv laravel-master my-project
cd my-project
composer install
GIT IT UNDER CONTROL I see what you did.
PROJECT STRUCTURE
PROJECT FOLDERS
app < your stuff
bootstrap < startup stuff
public < static stuff: img, js, css, etc.
composer.json < other people's stuff you want
vendor < other people's stuff





APPLICATION FOLDERS
app
commands
config
controllers
database
lang
models
start
storage
tests
views
filters.php
routes.php













ARTISAN
ARTISAN
Command line tool to make working with Laravel easier.
php artisan
BUILT-IN SERVER
php artisan serve --port 8000
ROUTING
BASIC ROUTING
Route::get('/', function() {
return 'Hello World!';
});
 app/routes.php
ROUTE PARAMETERS
// pass parameters via URI
Route::get('/hello/{name}', function($name)
{
return 'Hello, ' . $name;
});
 app/routes.php
// escape output for safety
Route::get('/hello/{name}', function($name)
{
return 'Hello, ' . e($name);
});
 app/routes.php
// filter the URI data
Route::get('/hello/{name}', function($name)
{
return 'Hello, ' . e($name);
})->where('name','[A-za-z]+');
 app/routes.php
// make the param optional
Route::get('/hello/{name?}', function($name='stranger')
{
return 'Hello, ' . e($name);
})->where('name','[A-za-z]+');
 app/routes.php
LISTING ROUTES
php artisan routes
CONTROLLERS
CONTROLLER ROUTING
Route::get('hello/{name?}', 'HelloController@showWelcome');
 app/routes.php
class HelloController extends BaseController {
public function showWelcome($name='stranger')
{
return 'Hello, '. e($name) . '!';
}
}
 app/controllers/HelloController.php
RESTFUL CONTROLLERS
Route::controller('users', 'UsersController');
 app/routes.php
class UsersController extends BaseController {
public function getIndex() {
// GET http://domain.com/users
}
public function postProfile() {
// POST http://domain.com/users/profile
}
}
 app/controllers/UsersController.php
RESOURCE CONTROLLERS
php artisan controller:make PostsController
Route::resource('posts', 'PostsController');
 app/routes.php
class PostsController extends BaseController {
public function index() {}
public function create() {}
public function store() {}
public function show($id) {}
public function edit($id) {}
public function update($id) {}
public function destroy($id) {}
}
 app/controllers/PostsController.php
php artisan routes
VIEWS
PASSING DATA TO VIEWS
class HelloController extends BaseController {
public function showWelcome($name='stranger')
{
return View::make('hello', array('name'=>$name) );
}
}
 app/controller/HelloController.php
class HelloController extends BaseController {
public function showWelcome($name='stranger')
{
return View::make('hello', compact('name') );
}
}
 app/controller/HelloController.php
<html>
<body>
<p>Hello, <?php echo e($name); ?>!</p>
</body>
</html>
 app/views/hello.php
<html>
<body>
<p>Hello, {{{ $name }}}!</p>
</body>
</html>
 app/views/hello.blade.php
BLADE TEMPLATING
OUTPUTTING DATA
<html>
<body>
// echo and escape output
Hello {{ $name }}! Hello {{{ $html }}}!
</body>
</html>
 app/views/VIEWNAME.blade.php
IF STATEMENTS
@if( $name=='Bob' )
Good to see you, Bob!
@elseif( $name=='Mary' )
Howya doing, Mary!
@else
Hey, where did Bob go?
@endif
@unless( $signed_in )
You are not signed in.
@endunless
 app/views/VIEWNAME.blade.php
LOOPS
@for ($i = 0; $i < 10; $i++)
The current value is {{ $i }}
@endfor
@foreach ($users as $user)
<p>This is user {{ $user->id }}</p>
@endforeach
@while (true)
<p>Make it stop!</p>
@endwhile
 app/views/VIEWNAME.blade.php
LAYOUTS
<html>
<body>
@include('header') {{-- app/views/header.blade.php --}}
@section('sidebar')
This is the master sidebar.
@show
<div class="container">
@yield('content', 'Default content')
</div>
</body>
</html>
 app/views/layouts/master.blade.php
@extends('layouts.master')
@section('sidebar')
@parent
<p>This is appended to the master sidebar.</p>
@stop
@section('content')
 app/views/VIEWNAME.blade.php
DATABASE
SUPPORTED DATABASES
Out-of-the-box support for:
MySQL
Postgres
SQLite
SQL Server




CONFIGURATION
return array(
'default' => 'mysql',
'connections' => array(
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'my-project',
'username' => 'db_user',
'password' => 's3creT_pa5sw0rD'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
…
 app/config/database.php
return array(
'default' => 'mysql',
'connections' => array(
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'my-project',
'username' => $_ENV['MYSQL_USER'],
'password' => $_ENV['MYSQL_PASS'],
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
…
 app/config/database.php
SECRET ENVIRONMENT
VARIABLES
return array(
'MYSQL_USER' => 'dbuser',
'MYSQL_PASS' => 's3creT_pa5sw0rD',
);
 .env.php
MIGRATIONS
PREPARING
php artisan migrate:install
php artisan migrate:make create_posts_table --create="posts"
MIGRATION FILE
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;
class CreatePostsTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
//
}
/**
* Reverse the migrations.
*
 app/database/migrations/###_create_posts_table.php
SCHEMA BUILDING
public function up()
{
Schema::create('posts', function(Blueprint $table) {
$table->increments('id');
$table->string('title', 50);
$table->text('text')->nullable();
$table->boolean('active')->default(true);
$table->timestamps(); // created_at and updated_at
});
}
public function down()
{
Schema::drop('posts');
}
RUN MIGRATIONS
php artisan migrate
OOOPS!
php artisan migrate:rollback
MODELS
ELOQUENT
class Post extends Eloquent {}
 app/models/Post.php
CREATE A NEW MODEL
$post = Post::create(
array(
'title' => 'My First Post',
'text' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit
'active' => true,
)
);
RETRIEVING
$post = Post::find(1);
$post = Post::findOrFail(1);
$posts = Post::where('id','>',3)->get();
$post = Post::where('title','LIKE','laravel')->first();
$posts = Post::all();
USING
$post = Post::find(1);
echo $post->title;
echo $post->created_at; // uses Carbon package for date handling
$posts = Post::all();
foreach( $posts as $post )
{
echo $post->title;
}
DELETING
$post = Post::find(1);
$post->delete();
Post::destroy(1);
Post::destroy(1,2,3);
$lastWeek = Carbon::now()->subWeek();
Post::where('created_at','<', $lastWeek)->delete();
ACCESSORS & MUTATORS
ACCESSORS
class Post extends Eloquent {
public function getTitleAttribute($value)
{
return ucwords($value);
}
}
$post = Post::create(array(
'title' => 'my first post'
));
echo $post->title; // "My First Post"
MUTATORS
class Post extends Eloquent {
public function setTextAttribute($value)
{
$value = trim($value);
$this->attributes['text'] = $value;
// not limited to modifying the one attribute
$this->attributes['excerpt'] = substr($value,0,97) . '...'
}
}
RELATIONSHIPS
ONE-TO-ONE
class Comment extends Eloquent {
// comments table has an `author_id` field
public function author()
{
return $this->hasOne('Author');
}
}
$author = Comment::find(1)->author;
INVERSE
class Author extends Eloquent {
// authors table needs a `post_id` column
public function comment()
{
return $this->belongsTo('Comment');
}
}
$title = Author::find(1)->comment->title;
ONE-TO-MANY
class Book extends Eloquent {
// books table has `author_id` column
public function author()
{
return $this->belongsTo('Author');
}
}
class Author extends Eloquent {
public function books()
{
return $this->hasMany('Book');
}
$my_books = Author::where('firstname','=','Ionut')->books;
MANY-TO-MANY
class Book extends Eloquent {
public function tags()
{
return $this->belongsToMany('Tag');
}
}
class Tag extends Eloquent {
public function books()
{
return $this->belongsToMany('Book');
}
}
PIVOT TABLE
Schema::create('book_tag', function(Blueprint $table) {
$table->increments('id');
$table->integer('book_id')->unsigned()->index();
$table->integer('tag_id')->unsigned()->index();
});
EAGER LOADING
Book::with('author')->get();
Book::with('author','tags')->get();
Tag::with('books.author')->get();
FORM HANDING
BUILDING FORMS
{{ Form::open() }}
{{ Form::label('title') }}
{{ Form::text('title', 'default', array('class'=>'form-control') }}
{{ Form::label('text', 'Enter the full text:') }}
{{ Form::textarea('text', 'default', array('placeholder'=>'Enter the text
{{ Form::email('email') }}
{{ Form::checkbox('is_active', 1, null, array('tabindex'=>4) }}
{{ Form::label('is_active', 'Yes') }}
{{ Form::submit('Send it!')}}
{{ Form::close() }}
HANDLING INPUT
$input = Input::get('field','default');
$input = Input::only('firstname','lastname');
$input = Input::except('credit_card');
$input = Input::get('choices.0.name');
$input = Input::all();
$input = Input::file('upload_field');
FORM MODEL BINDING
$book = Book::findOrFail($id);
return View::make('books.edit', compact('book'));
{{ Form::model($book, array('route'=>array('books.update', $book
{{ Form::text('title')}}
{{ Form::textarea('description')}}
…
{{ Form::close() }}
VALIDATION
VALIDATION RULES
$data = array(
'title' => 'My First Post',
'text' => 'Lorem hipster YOLO sic amet, semiotics banh mi flexitarian.
));
$rules = array(
'title' => 'required|min:5',
'description' => 'required|max:100'
);
VALIDATION
$validator = Validator::make( $data, $rules );
if ( $validator->fails() ) // ->passes()
{
$messages = $validator->messages();
…
}
if ( $messages->has('email') )
{
echo $messages->first('email', '<p>:message</p>');
}
$messages->get('field');
$messages->all();
VALIDATION RULES
$rules = array(
'firstname' => 'required',
'lastname' => 'alpha',
'email' => 'email',
'age' => 'integer|between:18,65',
'agree' => array('required','accepted'),
'website' => 'url',
'password' => 'confirmed', // implies matching 'password
'company_id' => 'exists:companies,id',
'gender' => 'in:male,female',
'photo' => 'mimes:jpeg,png|max:100', // kilobytes
'postalcode' => 'regex:^[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9]$'
);
LOGGING
LOGGING
Built on top of  Monolog
Log::info('This is some useful information.');
Log::info('Information with context', array('context' => 'Other helpful i
Log::warning('Something could be going wrong.');
Log::error('OMGWTFBBQ!');
 app/storage/logs/laravel.log
QUERY LOGGING
$queries = DB::getQueryLog();
DB::connection()->disableQueryLog();
CACHING
CACHE CONFIGURATION
 app/config/cache.php
Drivers:
file
database
apc
memcached
redis
array








CACHE USAGE
Cache::put('key', 'value', $minutes);
$expiresAt = Carbon::now()->addHours(10);
Cache::put('key', 'value', $expiresAt);
if (Cache::has('key')) { … }
$value = Cache::get('key');
$value = Cache::get('key', 'default');
$value = Cache::get('key', function() { return 'default'; });
$value = Cache::forever('key', 'value');
Cache::forget('key');
ADVANCED CACHE USAGE
$books = Cache::remember('all-books', 10, function()
{
return Book::with('author')
->orderBy('title')
->get();
});
MAIL
MAIL CONFIGURATION
Built on top of
 app/config/mail.php
Drivers:
smtp
mail
sendmail
  SwiftMailer





MAIL USAGE
Mail::send('emails.view', $data, function($message)
{
$message->to('ionut@example.com', 'Ionut Tanasa')
->subject('Welcome!');
});
Mail::send( array('emails.view.html', 'emails.view.text'), $data
{
$message->to('ionut@example.com', 'Ionut Tanasa')
->subject('Welcome!');
});
Mail::send( array('emails.view.html', 'emails.view.text'), $data
{
$message->to('ionut@example.com', 'Ionut Tanasa')
->subject('Welcome!')
->cc('bar@example.com')
->bcc('snoop@nsa.gov');
});
Mail::send( array('emails.view.html', 'emails.view.text'), $data
{
$message->to('ionut@example.com', 'Ionut Tanasa')
->subject('Welcome!')
->cc('bar@example.com')
->bcc('snoop@nsa.gov');
$message->attach($pathToFile);
});
Mail::send( array('emails.view.html', 'emails.view.text'), $data
{
$message->to('ionut@example.com', 'Ionut Tanasa')
->subject('Welcome!')
->cc('bar@example.com')
->bcc('snoop@nsa.gov');
$message->attach($pathToFile, array('as' => $display, 'mime' =>
});
INLINE DATA
<body>
Here is an image <img src="{{ $message->embed($pathToFile) }}"
</body>
<body>
Here is raw image data <img src="{{ $message->embedData($data, $name) }
</body>
QUEUEING MAIL
Mail::queue('emails.view', $data, function($message)
{
$message->to('ionut@example.com', 'Ionut Tanasa')
->subject('Welcome!');
});
Mail::later($seconds, 'emails.view', $data, function($message)
{
$message->to('ionut@example.com', 'Ionut Tanasa')
->subject('Welcome!');
});
AUTHENTICATION
EVENTS
LOCALIZATION
QUEUES
PACKAGES
FURTHER READING
 laravel.com/docs
 laravel.com/api
 github.com/laravel
 laravel.io
 laracasts.com
 github.com/cviebrock
That’s All Folks!

More Related Content

What's hot (20)

PPTX
Laravel overview
Obinna Akunne
 
PPTX
Laravel development (Laravel History, Environment Setup & Laravel Installatio...
Dilouar Hossain
 
PDF
Spring framework Introduction
Anuj Singh Rajput
 
PDF
Oracle Application Express 20.2 New Features
msewtz
 
PPTX
Workshop Spring - Session 1 - L'offre Spring et les bases
Antoine Rey
 
PDF
Redis 101
Geoff Hoffman
 
PPTX
Hive Tutorial | Hive Architecture | Hive Tutorial For Beginners | Hive In Had...
Simplilearn
 
PPTX
Part2 Best Practices for Managing Optimizer Statistics
Maria Colgan
 
PDF
Apache Calcite Tutorial - BOSS 21
Stamatis Zampetakis
 
PDF
Apache Spark Introduction
sudhakara st
 
PPTX
Laravel introduction
Simon Funk
 
PPTX
Introduction to redis
NexThoughts Technologies
 
PDF
Introduction to MongoDB
Mike Dirolf
 
PPT
JDBC
Sunil OS
 
PPTX
What-is-Laravel-23-August-2017.pptx
AbhijeetKumar456867
 
PPTX
React JS - A quick introduction tutorial
Mohammed Fazuluddin
 
PPTX
Oracle application express ppt
Abhinaw Kumar
 
PDF
Oracle RAC on Extended Distance Clusters - Presentation
Markus Michalewicz
 
PDF
The New JavaScript: ES6
Rob Eisenberg
 
PDF
How to make APEX print through Node.js
Dimitri Gielis
 
Laravel overview
Obinna Akunne
 
Laravel development (Laravel History, Environment Setup & Laravel Installatio...
Dilouar Hossain
 
Spring framework Introduction
Anuj Singh Rajput
 
Oracle Application Express 20.2 New Features
msewtz
 
Workshop Spring - Session 1 - L'offre Spring et les bases
Antoine Rey
 
Redis 101
Geoff Hoffman
 
Hive Tutorial | Hive Architecture | Hive Tutorial For Beginners | Hive In Had...
Simplilearn
 
Part2 Best Practices for Managing Optimizer Statistics
Maria Colgan
 
Apache Calcite Tutorial - BOSS 21
Stamatis Zampetakis
 
Apache Spark Introduction
sudhakara st
 
Laravel introduction
Simon Funk
 
Introduction to redis
NexThoughts Technologies
 
Introduction to MongoDB
Mike Dirolf
 
JDBC
Sunil OS
 
What-is-Laravel-23-August-2017.pptx
AbhijeetKumar456867
 
React JS - A quick introduction tutorial
Mohammed Fazuluddin
 
Oracle application express ppt
Abhinaw Kumar
 
Oracle RAC on Extended Distance Clusters - Presentation
Markus Michalewicz
 
The New JavaScript: ES6
Rob Eisenberg
 
How to make APEX print through Node.js
Dimitri Gielis
 

Viewers also liked (8)

PPTX
Workshop Laravel 5.2
Wahyu Rismawan
 
PDF
How to learn Laravel5 application from Authentication
Masashi Shinbara
 
PDF
MidwestPHP 2016 - Adventures in Laravel 5
Joe Ferguson
 
PPTX
Laravel 5
Brian Feaver
 
PDF
(Have a) rest with Laravel
Commit University
 
PDF
Laravel 5.4
Nisha Patel
 
PDF
Software Design Patterns in Laravel by Phill Sparks
Phill Sparks
 
PDF
reveal.js 3.0.0
Hakim El Hattab
 
Workshop Laravel 5.2
Wahyu Rismawan
 
How to learn Laravel5 application from Authentication
Masashi Shinbara
 
MidwestPHP 2016 - Adventures in Laravel 5
Joe Ferguson
 
Laravel 5
Brian Feaver
 
(Have a) rest with Laravel
Commit University
 
Laravel 5.4
Nisha Patel
 
Software Design Patterns in Laravel by Phill Sparks
Phill Sparks
 
reveal.js 3.0.0
Hakim El Hattab
 
Ad

Similar to Laravel 101 (20)

KEY
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Tatsuhiko Miyagawa
 
PDF
Doctrine and NoSQL
Benjamin Eberlei
 
PDF
Doctrine For Beginners
Jonathan Wage
 
PDF
関西PHP勉強会 php5.4つまみぐい
Hisateru Tanaka
 
PDF
Rails 3: Dashing to the Finish
Yehuda Katz
 
PDF
What's New In Laravel 5
Darren Craig
 
PDF
Doctrine for NoSQL
Benjamin Eberlei
 
PPTX
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
arcware
 
PDF
Codeigniter : Two Step View - Concept Implementation
Abdul Malik Ikhsan
 
PDF
How to develop modern web application framework
techmemo
 
PDF
Rails 3 overview
Yehuda Katz
 
PDF
Frameworks da nova Era PHP FuelPHP
Dan Jesus
 
PDF
Flask - Backend com Python - Semcomp 18
Lar21
 
PDF
Durian: a PHP 5.5 microframework with generator-style middleware
Kuan Yen Heng
 
PDF
Avinash Kundaliya: Javascript and WordPress
wpnepal
 
ODP
Aura Project for PHP
Hari K T
 
PPT
Play!ng with scala
Siarzh Miadzvedzeu
 
KEY
Ruby/Rails
rstankov
 
PDF
Play vs Rails
Daniel Cukier
 
PDF
Teaming up WordPress API with Backbone.js in Titanium
Jeroen van Dijk
 
Remedie: Building a desktop app with HTTP::Engine, SQLite and jQuery
Tatsuhiko Miyagawa
 
Doctrine and NoSQL
Benjamin Eberlei
 
Doctrine For Beginners
Jonathan Wage
 
関西PHP勉強会 php5.4つまみぐい
Hisateru Tanaka
 
Rails 3: Dashing to the Finish
Yehuda Katz
 
What's New In Laravel 5
Darren Craig
 
Doctrine for NoSQL
Benjamin Eberlei
 
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
arcware
 
Codeigniter : Two Step View - Concept Implementation
Abdul Malik Ikhsan
 
How to develop modern web application framework
techmemo
 
Rails 3 overview
Yehuda Katz
 
Frameworks da nova Era PHP FuelPHP
Dan Jesus
 
Flask - Backend com Python - Semcomp 18
Lar21
 
Durian: a PHP 5.5 microframework with generator-style middleware
Kuan Yen Heng
 
Avinash Kundaliya: Javascript and WordPress
wpnepal
 
Aura Project for PHP
Hari K T
 
Play!ng with scala
Siarzh Miadzvedzeu
 
Ruby/Rails
rstankov
 
Play vs Rails
Daniel Cukier
 
Teaming up WordPress API with Backbone.js in Titanium
Jeroen van Dijk
 
Ad

More from Commit University (20)

PDF
Accessibilità ed equità digitale: un impegno, non una scelta
Commit University
 
PDF
GitHub Copilot:vediamo chi comanda - Commit University.pdf
Commit University
 
PDF
Contract Driven Development - Branch 2024.pdf
Commit University
 
PPTX
Cybersecurity & AI: Illusioni e Speranze
Commit University
 
PDF
Migliorare la Developer Experience in un mondo Cloud Native
Commit University
 
PPTX
Scopri come sfruttare la potenza della Hybrid RAG
Commit University
 
PDF
Introduzione a AWS Forecast e SageMaker DeepAR: Prevedere la Domanda con il M...
Commit University
 
PDF
Oltre l'hype: vulnerabilità e limiti dell'intelligenza artificiale.pdf
Commit University
 
PPTX
Alla scoperta dei Vector Database e dei RAG
Commit University
 
PDF
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
 
PDF
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Commit University
 
PDF
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Commit University
 
PDF
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Commit University
 
PDF
Slide-10years.pdf
Commit University
 
PDF
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Commit University
 
PDF
Vue.js slots.pdf
Commit University
 
PPTX
Commit - Qwik il framework che ti stupirà.pptx
Commit University
 
PPTX
Sviluppare da zero una Angular Web App per la PA
Commit University
 
PDF
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Commit University
 
PDF
Prisma the ORM that node was waiting for
Commit University
 
Accessibilità ed equità digitale: un impegno, non una scelta
Commit University
 
GitHub Copilot:vediamo chi comanda - Commit University.pdf
Commit University
 
Contract Driven Development - Branch 2024.pdf
Commit University
 
Cybersecurity & AI: Illusioni e Speranze
Commit University
 
Migliorare la Developer Experience in un mondo Cloud Native
Commit University
 
Scopri come sfruttare la potenza della Hybrid RAG
Commit University
 
Introduzione a AWS Forecast e SageMaker DeepAR: Prevedere la Domanda con il M...
Commit University
 
Oltre l'hype: vulnerabilità e limiti dell'intelligenza artificiale.pdf
Commit University
 
Alla scoperta dei Vector Database e dei RAG
Commit University
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Commit University
 
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdf
Commit University
 
Accelerating API Development: A Pit Stop with Gin-Gonic in Golang-Slide.pdf
Commit University
 
Slide-10years.pdf
Commit University
 
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...
Commit University
 
Vue.js slots.pdf
Commit University
 
Commit - Qwik il framework che ti stupirà.pptx
Commit University
 
Sviluppare da zero una Angular Web App per la PA
Commit University
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Commit University
 
Prisma the ORM that node was waiting for
Commit University
 

Recently uploaded (20)

PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PDF
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 

Laravel 101