#[\AllowDynamicProperties]
class Users extends Controller{
public function __construct(){
$this->userModel = $this->model('User'); // 4.Satır
}
}
class tekrar dynamic properties kuralını desteklesin istiyorsan bu eki koymalısın.
header eklersen sorun ortadan kalkar.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.hepsiburada.com/asus-tuf-gaming-f15-fx507zc4-hn081-intel-core-i5-12500h-8gb-512gb-ssd-rtx3050-freedos-15-6-fhd-tasinabilir-bilgisayar-p-HBCV00005NM5DO?magaza=Hepsiburada");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 OPR/108.0.0.0',
]);
$server_output = curl_exec($ch);
curl_close($ch);
file_put_contents('cikti.txt', $server_output);
gibi.
vendor klasörünü komple gönder gitsin o şekilde çalışır, içeride composer zaten çalıştırman çok zor.
Firebase kullanmak yerine direkt olarak MongoDB gibi NoSQL de tercih edebilirsin haricinde ben sql yazacağım diyorsan MySQL PostgreSQL gibi veritabanlarını öneririm.Bu durumda firebase neden kullandın onu da ben merak ettim.
Konfigurasyondan kaynaklı olabilir PHP INI Editorüne girip dosya yüklemenin açık olup olmadığına ve yüklenecek dosyanın maximum boyutunun da yeterli olduğuna emin ol.
İçeriye bir apache kurup dosyanı public'e atarak orada yayınlayabilirsin.
Burada herhangi bir id yapısı ile veri çekme işlemi yapılmıyor, slug sistemi kullanılmış.
Kısacası bulamazsın.
Merhaba, bana discord üzerinden ulaşırsan yardımcı olabilirim. @_database
Bu isteği SQL tarafında çözmen gerekiyor buna örnek olarak;
$order = $_REQUEST['status'] ? 'DESC' : 'ASC';
Payments::orderBy('status', $order)->get();
Verdiğin cevaptan anladığım kadarıyla veritabanı tarafında optimizasyon sorunu yaşıyorsun.
Bunun çözümü şu şekilde olabilir.
Eğer sunucu taraflı bir çalışmaysa yapacağın işi böldürtebilirsin bu da şu şekilde olabilir.
<?php
$last_line_number = file_get_contents('last_line.txt') ?? 0;
for($x = $last_line_number; $x < count($xml); $x++) {
$data = $xml[$x];
// işlemler
$last_line_number++;
if($last_line_number % 1000 == 0){
file_put_contents('last_line.txt', $last_line_number);
break;
}
}
Ayrıca MySQL tarafı için de bir kaç tüyo verebilirim, INSERT işlemleri ne kadar fazla olursa olsun hızlı çalışacaktır fakat UPDATE sorguları aynı şekilde çalışmaz.
Optimize çalıştırmak istiyorsak
UPDATE table SET column = "new_data" WHERE column = 1 (YANLIŞ)
UPDATE table SET column = "new_data" WHERE column = 1 LIMIT 1 (DOĞRU)
Eklemiş olduğumuz LIMIT 1 ibaresi sadece 1 satırı güncelleyeceğini daha fazla derine inmemesini sağlar, ve böylece tek bir satırı güncelledikten sonra sorguyu sonlandırır.
Haricinde tekrar yapabileceğimiz tek bir şey daha var.
UPDATE table SET column = "new_data" WHERE column = 1 LIMIT 1
UPDATE table SET column = "new_data" WHERE column = 2 LIMIT 1
gibi tek tek sorguları atmaktansa 3 er 3 er şeklinde tek seferde de atabiliriz
UPDATE table SET column = "new_data" WHERE column = 1 LIMIT 1;
UPDATE table SET column = "new_data" WHERE column = 2 LIMIT 1;
UPDATE table SET column = "new_data" WHERE column = 3 LIMIT 1
Bu da bize her update attığımızda tek tek sorgu isteğinde bulunmadan tek seferde 3 sorguyu göndererek sıra sıra bu işlemleri yapması gerektiğini anlatmamızdır.
Tabi bu 3 ten fazla da olabilir ben sadece örnek verdim.
gibi