Skip to content
GrCode Club GrCode Club GrCode Club

GrCode Club

GrCode Club GrCode Club GrCode Club

GrCode Club

  • Αρχική
  • Developer
    • Πληροφορίες
    • Web Development
    • Γλώσσες προγραμματισμού
    • Docker
  • Δίκτυα Υπολογιστών
    • Βασικές Γνώσεις
    • Πρωτοκόλλα στα Δίκτυα Υπολογιστών
    • Υπηρεσίες και Ports
    • Cloud
  • Λειτουργικά Συστήματα
    • Βασικές Γνώσεις
    • Linux
    • Microsoft Windows
  • Kυβερνοασφάλεια
    • Πληροφορίες
    • Αttacks
    • Tools
  • Hardware
    • Πληροφορίες
    • Υπολογιστής
    • Οθόνες
    • Επίλυση Προβλημάτων
  • Κινητά
    • Android
    • iPhone
    • Οδηγός αγοράς Smartphone
  • Περισσότερα
    • Ο λογαριασμός μου
    • Ορολογία
    • Συντομογραφίες
    • Office Suite
  • Αρχική
  • Developer
    • Πληροφορίες
    • Web Development
    • Γλώσσες προγραμματισμού
    • Docker
  • Δίκτυα Υπολογιστών
    • Βασικές Γνώσεις
    • Πρωτοκόλλα στα Δίκτυα Υπολογιστών
    • Υπηρεσίες και Ports
    • Cloud
  • Λειτουργικά Συστήματα
    • Βασικές Γνώσεις
    • Linux
    • Microsoft Windows
  • Kυβερνοασφάλεια
    • Πληροφορίες
    • Αttacks
    • Tools
  • Hardware
    • Πληροφορίες
    • Υπολογιστής
    • Οθόνες
    • Επίλυση Προβλημάτων
  • Κινητά
    • Android
    • iPhone
    • Οδηγός αγοράς Smartphone
  • Περισσότερα
    • Ο λογαριασμός μου
    • Ορολογία
    • Συντομογραφίες
    • Office Suite
GrCode Club GrCode Club GrCode Club

GrCode Club

GrCode Club GrCode Club GrCode Club

GrCode Club

  • Αρχική
  • Developer
    • Πληροφορίες
    • Web Development
    • Γλώσσες προγραμματισμού
    • Docker
  • Δίκτυα Υπολογιστών
    • Βασικές Γνώσεις
    • Πρωτοκόλλα στα Δίκτυα Υπολογιστών
    • Υπηρεσίες και Ports
    • Cloud
  • Λειτουργικά Συστήματα
    • Βασικές Γνώσεις
    • Linux
    • Microsoft Windows
  • Kυβερνοασφάλεια
    • Πληροφορίες
    • Αttacks
    • Tools
  • Hardware
    • Πληροφορίες
    • Υπολογιστής
    • Οθόνες
    • Επίλυση Προβλημάτων
  • Κινητά
    • Android
    • iPhone
    • Οδηγός αγοράς Smartphone
  • Περισσότερα
    • Ο λογαριασμός μου
    • Ορολογία
    • Συντομογραφίες
    • Office Suite
  • Αρχική
  • Developer
    • Πληροφορίες
    • Web Development
    • Γλώσσες προγραμματισμού
    • Docker
  • Δίκτυα Υπολογιστών
    • Βασικές Γνώσεις
    • Πρωτοκόλλα στα Δίκτυα Υπολογιστών
    • Υπηρεσίες και Ports
    • Cloud
  • Λειτουργικά Συστήματα
    • Βασικές Γνώσεις
    • Linux
    • Microsoft Windows
  • Kυβερνοασφάλεια
    • Πληροφορίες
    • Αttacks
    • Tools
  • Hardware
    • Πληροφορίες
    • Υπολογιστής
    • Οθόνες
    • Επίλυση Προβλημάτων
  • Κινητά
    • Android
    • iPhone
    • Οδηγός αγοράς Smartphone
  • Περισσότερα
    • Ο λογαριασμός μου
    • Ορολογία
    • Συντομογραφίες
    • Office Suite

PHP – Laravel

Η Laravel είναι ένα PHP Framework για την ανάπτυξη web εφαρμογών.

Βασικές Ιδιότητες της Laravel

  1. MVC Αρχιτεκτονική (Model-View-Controller)
    • Model => χειρίζεται τη βάση δεδομένων και τα δεδομένα.
    • View => εμφάνιση περιεχομένου
    • Controller => λογική που συνδέει το Model με το View
  2. Eloquent ORM
  3. Routing System
  4. Blade Templating Engine
  5. Migrations & Seeders
  6. Security & Middleware: Έλεγχος πρόσβασης / Προστασία από CSRF attacks / Έλεγχος πριν φτάσει το αίτημα στο controller.

Εγκατάσταση Laravel

composer create-project laravel/laravel myapp
cd myapp
php artisan serve

– php artisan serve: ξεκινάει τον ενσωματωμένο server (http://127.0.0.1:8000)
– .env: αρχείο ρυθμίσεων (database, mail, app key, debug)

Δημιουργία App Key

Βασική Δομή Project

Φάκελος/ΑρχείοΠεριγραφή
app/Http/ControllersΠεριέχει όλους τους Controllers της εφαρμογής. Οι Controllers διαχειρίζονται τα αιτήματα (requests) και στέλνουν δεδομένα στα views ή models.
app/Http/ControllersΠεριέχει τα Eloquent Models. Αντιπροσωπεύουν πίνακες της βάσης και ορίζουν σχέσεις μεταξύ τους, fillable πεδία, scopes, και business logic.
app/Http/MiddlewareΠεριέχει τα middleware, που φιλτράρουν αιτήματα πριν φτάσουν στους controllers (π.χ. έλεγχος authentication, ρυθμίσεις πρόσβασης).
routes/web.phpΑρχείο όπου δηλώνονται τα web routes για την εφαρμογή. Συνδέει URLs με controllers ή views και χειρίζεται web requests.
routes/api.phpΑρχείο όπου δηλώνονται τα API routes. Προορίζεται για RESTful APIs και δεν χρησιμοποιεί session ή cookies.
resources/viewsΠεριέχει τα Blade templates (.blade.php). Εδώ γράφεται το HTML που βλέπει ο χρήστης και μπορεί να περιλαμβάνει loops, conditions, και layouts.
resources/cssΠεριέχει αρχεία CSS και stylesheets που χρησιμοποιούνται στο frontend της εφαρμογής.
resources/jsΠεριέχει αρχεία JavaScript και frontend scripts. Συχνά χρησιμοποιείται μαζί με frameworks όπως Vue ή React.
database/migrationsΠεριέχει migration αρχεία που καθορίζουν τη δομή της βάσης δεδομένων. Χρησιμοποιούνται για δημιουργία, αλλαγή ή διαγραφή πινάκων.
database/seedersΠεριέχει seeders για αρχικοποίηση δεδομένων στη βάση (π.χ. δημιουργία test users, default ρυθμίσεων).
public/Περιέχει όλα τα δημόσια αρχεία, όπως CSS, JS, εικόνες, και το index.php που ξεκινάει η εφαρμογή.
storage/Χρησιμοποιείται για logs, cache, sessions, και αρχεία που φορτώνονται ή δημιουργούνται κατά την εκτέλεση της εφαρμογής.
bootstrap/Περιέχει αρχεία για αρχικοποίηση του framework και το app.php που φορτώνει το Laravel.
config/Περιέχει όλα τα configuration αρχεία του Laravel (π.χ. database.php, mail.php, app.php).
vendor/Περιέχει όλα τα πακέτα και dependencies του Composer. Δεν επεξεργαζόμαστε συνήθως αρχεία εδώ.
tests/Περιέχει unit και feature tests για την εφαρμογή. Χρησιμοποιείται για έλεγχο της λειτουργικότητας.
artisanΤο CLI εργαλείο του Laravel για commands όπως migrate, make:model, serve, και πολλά άλλα.
.envΑρχείο ρυθμίσεων περιβάλλοντος (database, app key, mail, debug, κλπ.).

Routes (routes/web.php)

Το αρχείο routes/web.php στο Laravel είναι το βασικό αρχείο όπου δηλώνεις όλες τις web routes της εφαρμογής σου. Τα web routes είναι οι διαδρομές (routes) που χρησιμοποιούνται για web σελίδες της εφαρμογής σου. Είναι οι “χάρτες” που λένε στο Laravel τι να κάνει όταν ο χρήστης επισκεφθεί κάποιο URL μέσω browser.

Πώς λειτουργεί:

  1. Ο χρήστης επισκέπτεται ένα URL, π.χ. http://localhost:8000/users
  2. Το Laravel ψάχνει μέσα στο web.php για μία route που ταιριάζει με αυτό το URL.
  3. Όταν βρει την route, εκτελεί τον κώδικα που έχει οριστεί σε αυτή (closure ή controller method)
Route::get('/about', function () {
    return view('about');
});

Route με Controller: Μια Route με Controller είναι μια διαδρομή (route) που δεν χειρίζεται τον κώδικα απευθείας μέσα στο routes/web.php, αλλά καλεί μια μέθοδο ενός Controller για να εκτελέσει τη λογική της εφαρμογής.

Route::get('/users', [UserController::class, 'index']);

Route με Parameter: Μια route με parameter είναι μια διαδρομή που δεν είναι σταθερή, αλλά δέχεται δυναμικές τιμές από το URL.

Πώς λειτουργεί:

  1. Ο χρήστης επισκέπτεται π.χ. /user/5
  2. Το Laravel βλέπει ότι η route έχει ένα parameter {id}.
  3. Η τιμή 5 περνάει στη μέθοδο show() του UserController:
public function show($id) {
    $user = User::find($id);
    return view('users.show', compact('user'));
}

Named Routes: Μια Named Route είναι μια route στην οποία δίνουμε ένα όνομα, ώστε να μπορούμε να αναφερόμαστε σε αυτή με όνομα αντί για URL.

Πλεονεκτήματα:

  1. Αν αλλάξει το URL, δεν χρειάζεται να ενημερώσουμε όλα τα links στην εφαρμογή.
  2. Κάνει τον κώδικα πιο καθαρό και ευανάγνωστο
  3. Δίνει ευκολία σε redirects και Blade templates
Route::get('/profile', [ProfileController::class, 'show'])->name('profile.show');

Route Groups: Οι Route Groups είναι ένας τρόπος να ομαδοποιήσεις πολλές routes μαζί και να τους εφαρμόσεις κοινά χαρακτηριστικά όπως middleware, prefix ή namespace. Αυτό βοηθά στο να μην επαναλαμβάνεις τα ίδια σε κάθε route και να έχεις καλύτερη οργάνωση στον κώδικά σου.

Route::middleware(['auth'])->group(function () {
    Route::get('/dashboard', [DashboardController::class, 'index']);
});

Controllers

Οι Controllers είναι αρχεία/κλάσεις που περιέχουν τη λογική της εφαρμογής.Σκοπός τους είναι να διαχωρίσουν τη λογική από το view.Δηλαδή, δεν γράφουμε όλο τον κώδικα απευθείας στις routes (web.php), αλλά τον βάζουμε σε controllers.

php artisan make:controller UserController

Παράδειγμα Controller

<?php

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;

class UserController extends Controller
{
    // Εμφάνιση όλων των χρηστών
    public function index() {
        $users = User::all();
        return view('users.index', compact('users'));
    }

    // Εμφάνιση συγκεκριμένου χρήστη
    public function show($id) {
        $user = User::find($id);
        return view('users.show', compact('user'));
    }
}

RESTful Resource Controller: Είναι ένας Controller που ακολουθεί την αρχιτεκτονική REST. Παρέχει προετοιμασμένες μεθόδους για όλες τις CRUD λειτουργίες: Create, Read, Update, Delete.

php artisan make:controller PostController --resource
Μέθοδος ControllerHTTP MethodURLΠεριγραφή
indexGET/postsΕμφανίζει τη λίστα όλων των posts
createGET/posts/createΕμφανίζει τη φόρμα δημιουργίας νέου post
storePOST/postsΑποθηκεύει ένα νέο post στη βάση δεδομένων
showGET/posts/{id}Εμφανίζει ένα συγκεκριμένο post
editGET/posts/{id}/editΕμφανίζει τη φόρμα επεξεργασίας ενός post
updatePUT / PATCH/posts/{id}Ενημερώνει ένα συγκεκριμένο post στη βάση δεδομένων
destroyDELETE/posts/{id}Διαγράφει ένα συγκεκριμένο post από τη βάση δεδομένων

Models & Eloquent ORM

Τα Models είναι κλάσεις που αντιπροσωπεύουν πίνακες της βάσης δεδομένων.Βρίσκονται στο φάκελο: app/Models

Κάθε Model αντιστοιχεί σε έναν πίνακα της βάσης δεδομένων και χειρίζεται δεδομένα, σχέσεις και λογική που σχετίζεται με αυτά τα δεδομένα.

Το Eloquent ORM είναι το αντικειμενοστραφές σύστημα χειρισμού βάσης δεδομένων του Laravel. Σου επιτρέπει να δουλεύεις με πίνακες σαν να ήταν αντικείμενα PHP, χωρίς να γράφεις raw SQL.

Δημιουργία Model + Migration

php artisan make:model Post -m
ΜέθοδοςΠεριγραφή
Model::all()Επιστρέφει όλους τους records
Model::find($id)Βρίσκει record με συγκεκριμένο ID
Model::where(‘field’, value)->get()Φιλτράρει records
Model::create([…])Δημιουργεί νέο record (προσοχή $fillable)
Model::update([…])Ενημερώνει record
Model::delete()Διαγράφει record

Migrations

Οι Migrations είναι αρχεία που περιγράφουν τη δομή της βάσης δεδομένων.Βρίσκονται στο φάκελο: database/migrations

php artisan make:migration create_users_table --create=users # Δημιουργία Migration
php artisan migrate                  # Εκτέλεση όλων των pending migrations
php artisan migrate:rollback         # Ακυρώνει το τελευταίο migration
php artisan migrate:reset            # Ακυρώνει όλα τα migrations

–create=users → δημιουργεί αυτόματα έναν πίνακα users.

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id(); // primary key
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->timestamps(); // created_at, updated_at
        });
    }

    public function down()
    {
        Schema::dropIfExists('users'); // Αν γίνει rollback
    }
}

Εκτέλεση Migrations

php artisan migrate
php artisan migrate:fresh --seed

Blade Templates

Το Blade είναι το ενσωματωμένο template engine του Laravel.Βρίσκεται στο φάκελο: resources/views

Conditionals: Επιτρέπει να εμφανίζεις διαφορετικό περιεχόμενο ανάλογα με συνθήκες.

@if($user->isAdmin())
    Admin
@else
    User
@endif

Loop: Υποστηρίζει @foreach, @for, @while, @forelse για συλλογές και arrays.

@foreach($posts as $post)
    {{ $post->title }}
@endforeach

Layouts & Extends: Μπορείς να δημιουργήσεις κοινά layouts και να τα επεκτείνεις στις σελίδες

@extends('app')
@section('content')
    Home Page
@endsection

Includes

@include('partials.navbar')
@include('partials.footer')

Forms & Requests

<form method="POST" action="{{ route('posts.store') }}">
    @csrf
    <input type="text" name="title">
    <textarea name="body"></textarea>
    <button type="submit">Save</button>
</form>
  1. @csrf Προστατεύει από CSRF attacks
  2. action Η URL στην οποία θα σταλεί η φόρμα
  3. method="POST" Τύπος HTTP αιτήματος
  4. Όταν ο χρήστης υποβάλει τη φόρμα, το Laravel δημιουργεί ένα Request αντικείμενο που περιέχει όλα τα δεδομένα της φόρμας.Αυτό το αντικείμενο περνάει στον controller.

Το Laravel προσφέρει εύκολο τρόπο να επαληθεύεις δεδομένα πριν τα αποθηκεύσεις.

public function store(Request $request) {
    $validated = $request->validate([
        'name' => 'required|string|max:255',
        'email' => 'required|email|unique:users,email'
    ]);

    User::create($validated);

    return redirect()->route('users.index');
}

Middleware

Το Middleware είναι ένα φίλτρο που εκτελείται ανάμεσα στο αίτημα (request) του χρήστη και τον Controller.

  1. Authentication / Authorization: Ελέγχει αν ο χρήστης είναι συνδεδεμένος ή έχει δικαιώματα πρόσβασης.
  2. Logging / Monitoring: Καταγράφει τα αιτήματα για ανάλυση ή debugging
  3. CORS / Headers: Προσθέτει headers στα requests/responses
  4. Maintenance Mode: Μπορεί να μπλοκάρει πρόσβαση όταν η εφαρμογή είναι σε συντήρηση

Create Middleware

php artisan make:middleware CheckAdmin

Περιεχόμενο middleware

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class CheckAge
{
    public function handle(Request $request, Closure $next)
    {
        if ($request->age < 18) {
            return redirect('no-access');
        }

        return $next($request);
    }
}
  1. Το handle() παίρνει το αίτημα και ένα $next closure.
  2. Αν πληροί κάποια συνθήκη (π.χ. ηλικία < 18), μπορεί να μπλοκάρει το αίτημα.
  3. Αν όχι, συνεχίζει με $next($request) προς τον controller.

Αυτό σημαίνει ότι μόνο συνδεδεμένοι χρήστες (authenticated) μπορούν να επισκεφτούν τη σελίδα.

Route::get('/profile', [ProfileController::class, 'show'])
    ->middleware('auth');

Artisan Commands

Το Artisan είναι το command line tool του Laravel που σου επιτρέπει να διαχειρίζεσαι εφαρμογή, database, controllers, models και άλλα.

php artisan listΕμφανίζει όλες τις διαθέσιμες εντολές
php artisan serveΕκκινεί local development server (http://127.0.0.1:8000)

Seeders & Factories

Αυτά τα δύο εργαλεία χρησιμοποιούνται όταν θέλουμε να γεμίσουμε τη βάση δεδομένων με δεδομένα — ειδικά για development, testing ή demo σκοπούς

php artisan make:seeder UsersTableSeeder
php artisan db:seed                   # Εκτελεί seeders
php artisan make:factory UserFactory

Caching & Config

php artisan config:cache              # Cache configuration
php artisan route:cache               # Cache routes
php artisan view:clear                # Καθαρίζει cached views
php artisan cache:clear               # Καθαρίζει cache 

Social Media

  • Facebook
  • Instagram
  • YouTube
  • TikTok
  • Discord

Email Επικοινωνίας

info@grcodeclub.gr

Πολιτική Cookies (ΕΕ)

Όροι και Προϋποθέσεις

GrCode Club by @dimitridedou
X
Γίνετε μέλος του GrCode Club Discord Server!
🚀 Join Server
GrCode Club
Διαχείριση Συγκατάθεσης
Για να παρέχουμε την καλύτερη εμπειρία, χρησιμοποιούμε τεχνολογίες όπως cookies για την αποθήκευση ή/και την πρόσβαση σε πληροφορίες συσκευών. Η συγκατάθεση για τις εν λόγω τεχνολογίες θα μας επιτρέψει να επεξεργαστούμε δεδομένα προσωπικού χαρακτήρα, όπως συμπεριφορά περιήγησης ή μοναδικά αναγνωριστικά σε αυτόν τον ιστότοπο. Η μη συγκατάθεση ή η ανάκληση της συγκατάθεσης, μπορεί να επηρεάσει αρνητικά ορισμένες λειτουργίες και δυνατότητες.
Λειτουργικά Πάντα ενεργό
Η τεχνική αποθήκευση ή πρόσβαση είναι απολύτως απαραίτητη για τον νόμιμο σκοπό της δυνατότητας χρήσης συγκεκριμένης υπηρεσίας που ζητείται ρητά από τον συνδρομητή ή τον χρήστη ή με αποκλειστικό σκοπό τη μετάδοση επικοινωνίας μέσω δικτύου ηλεκτρονικών επικοινωνιών.
Προτιμήσεις
Η τεχνική αποθήκευση ή πρόσβαση είναι απαραίτητη για τον νόμιμο σκοπό της αποθήκευσης προτιμήσεων που δεν ζητούνται από τον συνδρομητή ή τον χρήστη.
Στατιστικά
Η τεχνική αποθήκευση ή πρόσβαση που χρησιμοποιείται αποκλειστικά για στατιστικούς σκοπούς. Η τεχνική αποθήκευση ή πρόσβαση που χρησιμοποιείται αποκλειστικά για ανώνυμους στατιστικούς σκοπούς. Χωρίς κλήτευση, η εθελοντική συμμόρφωση εκ μέρους του Παρόχου Υπηρεσιών Διαδικτύου ή πρόσθετες καταγραφές από τρίτο μέρος, οι πληροφορίες που αποθηκεύονται ή ανακτώνται για το σκοπό αυτό από μόνες τους δεν μπορούν συνήθως να χρησιμοποιηθούν για την αναγνώρισή σας.
Εμπορικής Προώθησης
Η τεχνική αποθήκευση ή πρόσβαση απαιτείται για τη δημιουργία προφίλ χρηστών, για την αποστολή διαφημίσεων ή για την καταγραφή του χρήστη σε έναν ιστότοπο ή σε διάφορους ιστότοπους για παρόμοιους σκοπούς εμπορικής προώθησης.
  • Διαχείριση επιλογών
  • Διαχείριση υπηρεσιών
  • Manage {vendor_count} vendors
  • Διαβάστε περισσότερα για αυτούς τους σκοπούς
Προβολή προτιμήσεων
  • {title}
  • {title}
  • {title}