Merhaba dostlar laravel 6 Altyapısı kullanan bir projem var Bu projede yüklemiş olduğum paketlerden birini vendor klasöründen çıkartıp özelleştirerek kullanmak istiyorum cloudinary-laravel Paketi bu paketi vendor Klasöründen çıkardığım zaman doğal olarak paket gözükmüyor ve proje bu paketi kullanan yerlerde patlıyor benim Bunu paketten ayırma ihtiyacım neden mevcut açıklayayım Api gibi key bilgilerine env Dosyasından çekiyor fakat benim Bunları veri tabanında tutma Erdem ve ihtiyaç iş yaptığım kişi bunları veri tabanından bilgilerini güncellenmesini talep ediyor pek çok dokümana baktım benim gözümden kaçtı sanırım olabilir sadece ENV dosyasında Bu bilgileri tutuyor isem proje sorunsuz çalışıyor ama veri tabanından almaya çalıştığımda yapamıyorum yapamadım diyebilirim benim Bunu bilgilerim mutlaka veri tabanından Secret key Api key Gibi bilgileri almam gerekiyor Bu konuda yardımlarınızı bekliyorum teşekkür ederim…
kod yapım:
config/cloudinary.php
`
<?php
/*
This file is part of the Laravel Cloudinary package.
*
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
*/
return [
/*
|--------------------------------------------------------------------------
| Cloudinary Configuration
|--------------------------------------------------------------------------
|
| An HTTP or HTTPS URL to notify your application (a webhook) when the process of uploads, deletes, and any API
| that accepts notification_url has completed.
|
|
*/
'notification_url' => env('CLOUDINARY_NOTIFICATION_URL'),
/*
|--------------------------------------------------------------------------
| Cloudinary Configuration
|--------------------------------------------------------------------------
|
| Here you may configure your Cloudinary settings. Cloudinary is a cloud hosted
| media management service for all file uploads, storage, delivery and transformation needs.
|
|
*/
'cloud_url' => env('CLOUDINARY_URL'),
/**
* Upload Preset From Cloudinary Dashboard
*
*/
'upload_preset' => env('CLOUDINARY_UPLOAD_PRESET'),
"secure"=>true,
"verify"=>false
];
`
app/Helper/CloudUpload.php
`
namespace App\Helper;
use Cloudinary\Cloudinary as Cloud;
use Exception;
use Illuminate\Http\Request;
class CloudUpload
{
private $cloud;
public function __construct()
{
$this->cloud = new Cloud();
}
public function index()
{
return view("cloud");
}
public function upload(Request $request)
{
$cloud = $this->cloud;
try {
$uploadedFileUrl = $cloud->uploadApi()->upload($request->file('img')->getRealPath(), [
'folder' => 'products',
]);
$secure_url = $uploadedFileUrl->getArrayCopy()["secure_url"];
dd($uploadedFileUrl, $secure_url);
} catch (Exception $exception) {
return response('', 500)->json(["error" => $exception]);
}
}
public function findAll()
{
$cloud = $this->cloud;
try {
$sea = $cloud->searchApi();
return $sea->execute()->getArrayCopy()["resources"];
} catch (Exception $exception) {
return response($exception);
}
}
public function findByName($name = null): array
{
$imageList = $this->findAll();
$image = [];
if (!is_null($name)) {
foreach ($imageList as $item) {
if ($item["filename"] === $name) {
$image[] = $item;
}
}
}
return $image;
}
public function deleteAll(): array
{
$images = $this->findAll();
$aw = null;
$noDeletes = [];
foreach ($images as $image) {
$delete = $this->deletePublic($image["public_id"]);
if ($delete["operation"] === "success") {
$aw = true;
} else {
$aw = false;
$noDeletes[] = $image;
}
}
if ($aw) {
$result = ["operation" => "success", "message" => "görsel silindi", "extra" => $noDeletes];
} else {
$result = ["operation" => "error", "message" => "görsel silinemedi", "extra" => $noDeletes];
}
return $result;
}
public function delete($public_or_name, $name_or_public = null): array
{
if (is_null($name_or_public)) {
return $this->deleteName($public_or_name);
}
$publicId = "$public_or_name/$name_or_public";
return $this->deletePublic($publicId);
}
private function deleteName($name): array
{
$extensions = ["jpg", "jpeg", "png", "gif", "webp", "svg"];
if (in_array(pathinfo("$name")["extension"], $extensions)) {
$name = pathinfo($name)["filename"];
}
$cloud = $this->cloud;
try {
$image = $this->findByName($name);
if (count($image) > 0) {
$publicId = $image[0]["public_id"];
$delete = $cloud->adminApi()->deleteAssets($publicId, ["resource_type" => "image", "type" => "upload"]);
if ($delete) {
$result = ["operation" => "success", "message" => "görsel silindi"];
} else {
$result = ["operation" => "error", "message" => "görsel silinemedi"];
}
} else {
$result = ["operation" => "waring", "message" => "silinmek istenen görsel bulunamadı"];
}
} catch (Exception $e) {
$result = ["operation" => "success", "message" => "Bilinmeyen bir durum", "exception" => $e];
}
return $result;
}
private function deletePublic($public): array
{
$cloud = $this->cloud;
try {
$delete = $cloud->adminApi()->deleteAssets($public, ["resource_type" => "image", "type" => "upload"]);
if ($delete) {
$result = ["operation" => "success", "message" => "görsel silindi"];
} else {
$result = ["operation" => "error", "message" => "görsel silinemedi"];
}
} catch (Exception $e) {
$result = ["operation" => "success", "message" => "Bilinmeyen bir durum", "exception" => $e];
}
return $result;
} }
`