Laravel etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Laravel etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Laravel İnstall Composer Allowed Memory Size ERROR

Fatal error: Allowed memory size of ,Hatanın Çözümü


 


Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 167772160 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleSet.php on line 90


laravel projesini bilgisayrınıza indirirken yukarıdaki hatayı alıyorsanız.

comoposer çağırmadan önce memeory size -1 gönderdin.


örnek:

COMPOSER_MEMORY_LIMIT=-1 composer create-project laravel/laravel new_folder_name


Laravel Request PHP

  Laravel Request PHP




<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request; //Formdan gelen bilgiler Request Class ında tutulur
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{

//Request class ı belirtikten sonra parametreye istedğimiz değeri verebiliriz.
// Re$request
public function ekle(Request $request){
$ad = $request->ad;
$soyad = $request->soyad;
}

}


/*
* detaylı request class kullanımı için linkten ulaşabilirsiniz: https://laravel.com/docs/8.x/requests
*/

Laravel Model CRUD PHP

 Laravel Model CRUD PHP

/*
bir tane model sayfası oluşturuyoruz.

console:php artisan make:model Bilgiler
*/

myProject\app\Models\Bilgiler.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Bilgiler extends Model
{
use HasFactory;

protected $table = "bilgiler"; //dbdeki tablo adımız.
public $timestamps = true; //created_at,updated_ad alanlarını otomatik eklmesi için true yaptık.

//Kullanıcağımız alanları burada belirlyoruz.
protected $fillable = [
"metin",
"created_at",
"updated_ad"
];
}
?>

/*
controller oluşturup buradan model işlemlerimizi gerçekleştiriyoruz.
console:php artisan make:controller ModelIslemleri

methodları route üzerinden çağırıp kullanabilirsiniz.

*/

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Bilgiler; //Modelimizi çağrıyoruz.
use DB;

class ModelIslemleri extends Controller
{
public function bilgiler(){
$bilgi = Bilgiler::get();

foreach($bilgi as $key =>$val){
echo $val->id ." - ".$val->metin ."<br>";
}
}

public function bilgilerID(){
$bilgi = Bilgiler::where("id",1)->first();
$bilgi = Bilgiler::whereId(1)->first(); //whereId baş harfini büyük olarak field adını yazarakda kullanabiliriz
$bilgi = Bilgiler::whereMetin("örnek")->first(); //whereMetin baş harfini büyük olarak field adını yazarakda kullanabiliriz
$bilgi = Bilgiler::find(1); //find kısa şekilde kullanabiliriz.

echo $bilgi->metin;


}

public function ekle(){
Bilgiler::create([
"metin" => "Örnek bir metin bilgisi girişi yapıldı",
//bir kayıtı belirtiğimizde modelde sonda bvirgül olması gerekir, bazı sunucularda hata almamak için
]);
}

public function guncelle(){
Bilgiler::whereId(1)->update([
"metin" => "metin update edildi",
//bir kayıtı belirtiğimizde modelde sonda bvirgül olması gerekir, bazı sunucularda hata almamak için
]);
}

public function sil(){
Bilgiler::whereId(1)->delete();
}

}

Laravel DB CRUD PHP

 laravel DB

Modele göre DB kütüphanesi yavaş olduğu için özel durumlarda kulanılabilir.

/*
ilk olarak bir controller oluşturup buradan veritabanı işlemlerimizi gerçekleştiriyoruz.
console:php artisan make:controller VeritabaniIslemleri

methodları route üzerinden çağırıp kullanabilirsiniz.

*/

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;

class VeritabaniIslemleri extends Controller
{
public function bilgiler(){
$veriler = DB::table('bilgiler')->get(); //get methodu tüm kayıtları çeker.

foreach($veriler as $key =>$val){
echo $val->id ." - ".$val->metin ."<br>";
}
}

public function bilgilerID(){
$veriler = DB::table('bilgiler')->get(); //get methodu tüm kayıtları çeker.

foreach($veriler as $key =>$val){
echo $val->id ." - ".$val->metin ."<br>";
}
}

public function bilgiler(){
$veriler = DB::table('bilgiler')->where("id",1)->first(); //first tek bir kayıttı getirir.
echo $veriler->id ." - ".$veriler->metin ."<br>";
}

public function ekle(){
DB::table('bilgiler')->insert([
"metin" => "Örnek bir metin bilgisi girişi yapıldı"
]);
}

public function guncelle(){
DB::table('bilgiler')->where('id',1)->update([
"metin" => "Örnek bir metin bilgisi güncellendi."
]);
}

public function sil(){
DB::table('bilgiler')->where('id',1)->delete();
}
}

Laravel Mıgration PHP

 Laravel Mıgration PHP

laravel mysql üzerinden tablo oluşturma işlemleri

İlk olarak myProject\.env dosyamızda bulunan mysql kullanıcı adımızı ve veribanamızı yazıyoruz.


DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=veritabani_1
DB_USERNAME=root
DB_PASSWORD=123
Daha sonra aşağıdaki işlemleri gerçekleştirebiliriz.

/*
console:php artisan make:migration bilgiler --create=bilgiler

"bilgiler" adında bir migration dosyası oluşturuyoruz.
--create="bilgiler" tabloumuz adı.

up methodu dosya çalıştırıldığında yapılacak işlemlerin bulunduğu method.
down tabloda düzeneme veya kaldırma işleminde yapılacak işlemler için kullanılır.

*/

file:myProject\database\migrations\ 2022_08_08_163637_bilgiler

<?php

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

class Bilgiler extends Migration
{

public function up()
{
Schema::create('bilgiler', function (Blueprint $table) {
$table->id(); //tabloda otomatik artar olarak, AUTO_INCREMNT olarak tanımlı gelir.
$table->string('metin')->nullable(); //tabloda varchar olarak açar. "nullable" bu alan boş bırakılabilir.
$table->timestamps(); //tabloda created_at updated_at olarak iki alan açar otomatik olarak.
});
}

public function down()
{
Schema::dropIfExists('bilgiler');
}
}
?>

/*
oluşturduğumuz migrationı mysql aktarması için aşağıdaki komutu console ekranına yazıyoruz.
migrations klasorundeki tüm migrationları mysql aktrarır.

console: php artisan migrate

*/

Laravel Middleware PHP

 Laravel Middleware (Arakontrol)



/*
Yeni bir tane middleware oluşturmak için console aşağıdaki parametreleri giriyoruz.
console:php artisan make:middleware FormControl
   file:myProject\app\Http\Middleware\FormControl.php
*/

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;

class FormControl
{
//handle -> tek fonksiyon üzerinden yönetebiliyoruz işlemlerimizi
public function handle(Request $request, Closure $next)
{
if($request->metin == "test"){
return redirect()->back();
}

return $next(request);
}
}

?>

/*
Middleware'imizin route işlemlerinde çalışması için bir tanımla yapıyoruz.
"'formcontrol'=>app\Http\Middleware\FormControl::class"
file:/Applications/Ampps/www/restapi_v1/app/Http/Middleware/Kernel.php
*/

<?php
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'formcontrol'=>app\Http\Middleware\FormControl::class
];
?>

/*
Route dosyamız içinde middlewareimizi çağrıyoruz.
file:myProject/routes/web.php
*/

<?php
//formController classını çağırmadan önce middlewaredeki kontrolümüze bakıyor eğer orayı geçemezse formController gitmiyor.
Route::middleware('formcontrol')->post("form",['formController::class','add'])->name('form_post');
?>