ismail0234 / n11-php-api

Bu api n11 için yazılmıştır. N11 için yazılmış olan gelişmiş bir php apisi. Ekstra olarak n11 üzerinde mağazanıza gelen siparişleri websitenize aktaracak bir fonksiyonda mevcuttur.
https://ismail0234.github.io/n11-php-api/
MIT License
64 stars 34 forks source link

ClientStatus kontrolü hakkında #17

Open 1YalcinSahin1 opened 4 years ago

1YalcinSahin1 commented 4 years ago

Merhaba,

Herhangi bir service istek attığımda BaseCall __construct() girdiğinden dolayı sürekli client açıyor ?

getCities() isteği için de client açıyor , getTopLevelCategories() için de.

Yaptığınız ClientStatus mantığını anlayamadım.

Ayrıca editörler city , category gibi ifadeleri(magic method algılamıyor).

/**
 * Class N11ClienClass
 * @property-read CategoryService $category
 * @property-read ProductService $product
 * @property-read CityService $city
 * @property-read ShipmentCompanyService $shipmentcompany;
 * @property-read ShipmentService $shipment;
 * @property-read ProductSellingService $selling
 * @property-read ProductStockService $stock
 * @property-read OrderService $order
 * @property-read WebHookService $webhook
 * @package App\Classes\N11Service
 */
class N11ClienClass extends N11Client
{
}

Clientleri bu şekilde bir class üzerinden açarlarsa sorunları da düzelir.

Edit: Sorun PHPDoc verilmesinden dolayı oluşuyor.Metotların bazıları 500 hatasına dönüyor.

$client parametresi geçirdiğiniz fonksiyonlarda $client = null yapıp kalıtım yaparsam sorun çözülüyor. Ama parametre olarak $client vermenizi anlamadım

ismail0234 commented 4 years ago

Mimariyi ilk tasarladığımda o şekilde kurgulamıştım. Daha sonradan sürekli açılan clienti sabit tek bir client'e indirecektim ama fazla vaktim olmadığı için sadece düşünce olarak kaldı. Parametre olarak verilen $client her oturum için iç kodda kullanılması için veriliyor. Client static ile tek bir bağlantı haline gelirse onlara gerek kalmadan sorununuz çözülür ama şuan pek müsait olamadığım için bunu yapamıyorum.

1YalcinSahin1 commented 4 years ago

Mimariyi beğendim , güzel bir mantık var öncelikle teşekkürler. Ama static kullanma konusunu dediğin gibi yapamadım.Methotlara geçiremiyorum.

url'leri basecall içerisinde switch-case ' e çevirdim. request classı ile servis class ı oluşturma kısımlarını yer değiştirdim. Servis oluşturma class'ına da parametre olarak client geçirmeye çalıştım.

İlk başta da mutlaka client açıyorum , false bırakmamak için. Ama servislerde clienti çalıştıramadım. Müsait bir zamanında bu konuda yardımcı olabilirsen memnun kalırım. Tekrardan eline , emeğine sağlık.

İyi çalışmalar.

İsmail notifications@github.com, 19 Ağu 2020 Çar, 22:59 tarihinde şunu yazdı:

Mimariyi ilk tasarladığımda o şekilde kurgulamıştım. Daha sonradan sürekli açılan clienti sabit tek bir client'e indirecektim ama fazla vaktim olmadığı için sadece düşünce olarak kaldı. Parametre olarak verilen $client her oturum için iç kodda kullanılması için veriliyor. Client static ile tek bir bağlantı haline gelirse onlara gerek kalmadan sorununuz çözülür ama şuan pek müsait olamadığım için bunu yapamıyorum.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ismail0234/n11-php-api/issues/17#issuecomment-676631216, or unsubscribe https://github.com/notifications/unsubscribe-auth/AM3OYTHLR435B2F3ILYNGHDSBQVI5ANCNFSM4QE43XXA .