Anatomi WP-CHLI Komutları: Veritabanı İçe Aktar WP
Bazı insanlar için WP-CLI, komut satırında rahat hisseden WordPress geliştiricileri için iyi ama isteğe bağlı konfor gibi görünebilir. PHP sürecinde tükenme sorununu ele alan veya birçok web sitesini yöneten geliştiriciler için WP-CHLi bundan daha fazlasıdır: Bu, zaman tasarrufu ve güçlü bir araçtır. Bugün nasıl çalıştığını öğrenmek için tek tek WP-CHLI komutunu göreceğiz. Bunu yaparak, WP-Chli komutlarının nasıl çalıştığı ve kendimiz yapmak için ne yapmamız gerektiği hakkında daha fazla bilgi edineceğiz. Bu makale, genel olarak komut satırı ve özellikle WP-CHLI ile çok fazla konfor ve bilgi varsaymaktadır. Nasıl sürüleceğini değil, dahili çalışma şeklini gerçekten öğreneceğiz. WP-CHLI ile yakınlığınız ne olursa olsun, bir sonraki kısmı takip edin-size yardımcı olabilecek birçok ücretsiz içeriğe sahip olun.
WP-Cli komutları yazmayı öğrenmeden önce faydalı okuma WP-CLI’nin temellerini inceleyen bir yerdir. Bu makale bu temelden çalışacaktır. Eğer “CLI” nedir yenilemek istiyorsanız, belki bununla başlayın: Komut satırı nedir? İlk prensipten CLI Bu kısımda ustalaştıysanız, ancak WP-chli’ye tanıtılması gerekiyorsa, burada başlayın: ne, nasıl ve neden wp-chli: wordpress terminalinizde bir avuç başka makalemiz var, hızlı Yönergeler ve daha pek çok şey, bunlardan bazılarını çalışırken görmenize yardımcı olabilecek videolara sahip. İşte bazıları:
Hızlı Kılavuz: Dosya Sistemlerini Komut Satırından Gezinme
Makale: Her WordPress Geliştiricisi bilinmesi gereken CLI UNIX 10-IMA Dosya Komutu
Kısa Kılavuz: Bash Aliaspanduan’ı Hızlı Yapma: WP-CHLI’yi nasıl ve neden
Bağlantı Gönderme: WP-CLI İşleme Komutu Yazma
WP-Chli’nin siparişi nedir? WordPress geliştiricileri tarafından yazılan WordPress çekirdeklerinin ve kodların aksine, WP-CHLi PHP nesneleriyle birçok şeyi gerçekleştirir. (PHP’de nesne yönelimli programlama tanıtımı istiyorsanız, şu iki makaleyi okuyun: oop çekirdek kavramları ve nesne yönelimine daha derin dalış.)
WP-CHLI komutu, bir kancadan WP-CLI ile kayıtlı bir eylem veya bir dizi eylemdir. Çoğu WordPress ile aynı. Ancak fark, bir komutu kancaya bir çağrı ile kaydetmenin yanı sıra, WP-CLI ile tüm PHP nesnelerini aramanızla ilişkilendirebilirsiniz. Bu durumda, nesnenizdeki tüm genel yöntemler yürütülebilen CLI komutları (veya isterseniz alt yönetmen) haline gelir. Bu çok havalı ve güçlü bir seçimdir, ancak bu varsayılan olarak her WordPress geliştiricisi tarafından beklenebilecek bir şey değildir. Bunu ilk duyduğumda, doğru anlamadığım için aslında biraz şüpheliydim. WordPress böyle bir sihir içermez.
Öğreneceğimiz komutlar ve neden: WP DB İçe Aktar WP-CHLI (Çekirdek Proje) WP (Çekirdek Proje) bugün ayarlanmış, kutunun dışında yapılabilecek birçok komut için bir dizi farklı depodadır.Dolayısıyla, eklentinin bileşeni çekirdekten tamamen farklıdır ve son ambalajdan önce çekirdeğe ayarlanması gereken tüm komutları çizmek için bir besteci kullanan işlem sürecinde.Bu, modülerlik ve gelecekteki düşüncenin çok güzel bir örneğidir, ancak bazı insanları tökezleyebilir.Örneğin, bazı komutlar, eklentiler ve temalar Repo WP-CHLI/WP-CHLI’dadır, ancak diğerlerinin çoğu dışarıdadır.Ve bence dışarıda kendi komutlarını yazmayı düşünen biri için yararlı.Ayrıca, komutunuzu WP-CLI’nin çekirdeğine ekleyebilirseniz, nasıl bir uzantı yapacağınızı zaten biliyorsunuzdur.
Ancak, daha yakın göreceğimiz ve biraz daha iyi anlayacağımız komut veritabanı ithalatçısıdır. WP-CHLI’yi tartıştığımız makalede de belirttiğimiz gibi, çok havalı WP-CLI güçlü yönlerinden biri, phpmyadmin veya benzeri araçları kullanmaya gerek kalmadan veritabanlarını içe aktarmak ve dışa aktarmaktır. Bu sipariş işlemin yalnızca ithalat tarafıdır. Ama önce, yaşadığı tüm proje hakkında biraz daha. WP-CLI komutu nasıl kayıtlı ve kısa bir not: Bu makalede bazı farklı zamanlar, DB-komut yazılım paketindeki DB WP işlevini WP-CHLI’da kullanılabilir hale getiren satır numarasına atıfta bulunacağım. Bunu okuduğunuzda, bu satır numarasının değişmesi çok mümkündür. Ancak GitHub’a atıfta bulunduğum her satır numarasına bağlanacağım ve bağlantı yazarken en son komiteye bağlı. Dolayısıyla, kod gelecekte değişebilse bile, tüm referansları bu şekilde takip etmelidir.
Bununla birlikte, WP-CLI ile kayıtlı sipariş yöntemi (nesne) her eski WordPress geliştiricisi için oldukça rahat olmalıdır, çünkü diğer WordPress kodlarının çoğunun temel uygulama süresine kayıtlı olma şekli ile birçok benzerliği vardır. Özel komutumuz WP DB Import’umuz da dahil olmak üzere bu komut koleksiyonunu yapan DB-Command.php, Core Row (12) ‘de küçük bir kaynak plakasından sonra WP-CLI’de çalıştırılabilir :: add_command (‘ db ‘,’ ‘ db_command ‘); İşlevi nedir? Bu, wp_cli çekirdek sınıfındaki add_command statik yöntemi olarak adlandırılır. Statik yöntem yeni bir kırışıklıktır, ancak aksine add_ace () veya register_widget () gibi bilinen bir işlev sözdizimine çok benzer. İkincisi biraz daha iyi bir uyumluluktur, çünkü add_command ve register_widget ile, işlev veya işlev adından ziyade bir sınıf adı verirsiniz. Ancak, WP-CLI için, önce komutunuzun (veya komutların koleksiyonunun) nasıl adlandırılacağını belirlersiniz. komut satırı. Buradaki örneğimizde, bu DB argümanı. Bahsettiğimiz gibi, DB_Command sınıfından tüm genel yöntemlere erişilecektir. Özellikle DB CoolMethod gibi bir şey kaydetmek mümkündür, ancak bu durumda bir düzine siparişin bir satırda nasıl WP-CHLI ile kayıtlı olduğu konusunda tam harikalar görüyoruz. WP-CHLI komutunun nasıl belgelenmesi WP-CHLI ile ilgili harika ve büyülü şeylerden biri, tüm komutların komut satırında belgelenmesidir. Dahası, bu aslında komutun kendisine göre az ya da çok uygun olan PHP yorumlarının sonucudur. Bunun birçok faydası var.
DB komut kodunu içe aktardığını görmeden önce, belge bloğuna bakalım. Farkında olması gereken şey, aradığınız şey (340-361 satırında), DB Import WP komutunun arayüzünde olduğunuzda elde ettiğiniz şeydir. /*** Bir veritabanı bir dosyadan veya stdin’den içe aktarın. * * WP-Config.php’de belirtilen ‘db_host`,’ db_name ‘,’ db_user ‘ve *’ db_password ‘veritabanı kimlik bilgilerini kullanarak SQL sorgularını çalıştırır. Bu * kendi başına veritabanı oluşturmaz ve yalnızca SQL’de tanımlanan görevler * ne olursa olsun performans oluşturmaz. * * ## Seçenekler * * [] *: İçe aktarılacak SQL dosyasının adı. Eğer ‘-‘ ise, Stdin’den okur. Atlanırsa, ‘{dbname} .sql’ arar. * * [-Skip-optimizasyon] *: Bir SQL dosyası kullanılırken, otomatik komutu ve anahtar kontrolleri devre dışı bırakma gibi hız optimizasyonunu içermeyin. * * ## Örnekler * * # MySQL’i bir dosyadan içe aktardı. * $ wp db ithal wordpress_dbase.sql * Başarı: ‘wordpress_dbase.sql’ adresinden içe aktarılır. */ Böylece ilk paragraf, “İçe Aktar Veritabanı …” kısa bir özettir. WP DB -Help’e basarken gördüğünüz budur. Bu aynı zamanda WP DB İthalat -Help için ilk satırdır. Gerisi de son komutu yaptığınızda görülür. İkinci paragraf daha eksiksiz bir açıklamadır. Bölüm ## Seçenekler size olası tüm argümanları anlatır ve ## Örnekler Bölümü, yalnızca komut satırındaki komut belgelerini görmenize yardımcı olur.
WP-CLI komutunun düzgün çalışması için bu dokümantasyonun tam olarak gerekli olmadığını, ancak bu gerçekten iyi bir alışkanlıktır. Ve önce yazarsanız, kullanıcınızın işinizi nasıl kullanacağı konusunda biraz daha zor düşünmenizi sağlar. Bu neredeyse her zaman iyi bir şey. WP WP DB İçe Aktarma Algoritması ve Gerçek İşlev Serisi Kullanılan Bu özel komut, WP-CLI komutunun nasıl düzenlendiğini öğrenmek için bu makaleyi okursanız önemli değildir. Ama ondan alabileceğimiz bazı ilginç şeyler var. Bu, biraz özetlendi: genel işlev ithalat ($ args, $ asth_args) {if (! Boş ($ args [0])) {$ sonuç_file = $ args [ 0]; } else {$ sonuç_file = sprintf (‘%s.sql’, db_name); } $ mysql_args = array (‘veritabanı’ => db_name,); if (‘-‘! == $ sonuç_file) {if (! Is_readable ($ sonuç_file)) {wp_cli :: sprintf (‘içe aktarma dosyası eksik veya okunamaz: %s’, $ sonuç_file)); } $ query = ‘kaynak %s;’; $ mysql_args [‘execute’] = sprintf ($ query, $ sonuç_file); } self :: run (‘/usr/bin/env mysql-no-defaults-no-oto-rehash’, $ mysql_args); Wp_cli :: başarı (sprintf (“‘%s’ den ithal edildi.”, $ Sonuç_file));
} İlk olarak, yukarıda belirttiğim gibi, bu yöntemin 362’de bir genel işlev ithalat (…) olarak bildirilmesi çok önemlidir. Kamusal ilginç ve önemli olan şeydir. Bu uzantı gibi CLI komut sınıfını kaydederseniz, tüm genel yöntemler gerçekleştirilebilen CLI siparişleri olarak değerlendirilir. Dolayısıyla, sınıfınız için çalıştırılamayacak başka yöntemlere sahip olmak istiyorsanız (subrutin vb. İçin), onu özel veya korunduğunuzdan emin olmanız gerekir. Bundan sonra komut, dosya dahil edilmezse hangi dosyaların içe aktarılacağını tahmin eder (365). Burada, ilk yöntem argümanının kullanımı, $ args dikkate alınmalıdır. İçinde, bölüm ## dokümantasyon seçeneklerinden aktarılan seçeneklerin bir listesi vardır. İkinci yöntem argümanı aynıdır, ancak sadece bir pozisyon olarak değil, anahtar olarak yerleştirilen bir adla. 375 satır WP_CLI yönteminin kullanımı ile ünlüdür :: error (). Bu, kullanıcıya bir şey olduğunu bildirmenize izin vermek için iyi bir küçük ambalaj (bazılarından biri). Ancak bu durumda, bu aynı zamanda yürüttükleri emirler için yanlış bir şey (veya başarı yöntemi için doğru) olduğuna dair bir göstergedir. Bu konuda ekstra iyi olan, komut dosyalarının diğer CLI komutları tarafından anlaşılacak doğru giden bir kod yaymasını sağlamalarıdır. Yankı WP-CHLi komutları yazarken işlev görür, ancak bu yöntem tercih edilmelidir. Son olarak, satır 385 bazı açıklamalar gerektirir: self :: run (‘/usr/bin/env mysql-no-defaults-no-no-rehash’, $ mysql_args);