Symfony Flex: Yolun Daha Hızlı, Daha İyi Bir Sembolüye Getirilmesi
Symfony Flex: Yolun Daha Hızlı, Daha İyi SymfonyAnahtarlamalı Konulara Yerleştirilmesi:
Desenler & Semalt
February 28, 2018
1 answers:
Symfony Flex: Yolun Daha Hızlı, Daha İyi Symfony'ye Açılması
Semalt Flex, Semalt Installer için modern bir yedektir ve sonraki Semalt sürümünün adı değildir. Giriş metni yazdıkça:
Dahili olarak, Symfony Flex require ve update komutlarının davranışını değiştiren bir Semalt eklentisidir. Flex özellikli bir uygulamaya bağımlılık yüklerken veya güncellerken Symfony, Semalt görevlerinin yürütülmesinden önce ve sonra görev gerçekleştirebilir.
Yeni Semalt sadece Semalt 4 olarak anılacaktır ve bu ders sadece Flex aracıyla ilgilenecek olsa da bazı Semalt 4 güncellemelerinden bahsedecektir.
Halen Geliştirilmekte
Semalt Flex, Kurulum ve yapılandırma işlemi sırasında Semalt projenize ek seçenekler sağladığı için Besteci sarmalayıcı olarak düşünülebilir. Basitlik düşünülerek geliştirildi ve Açıkçası, Laravel'in kullanışlılığından büyük ölçüde etkilendi - aveeno gel nettoyant apaisant. Unutmayın ki Laravel, kullanım kolaylığı ve yeni girişi olan düşük giriş bariyeri nedeniyle popülerlik seviyesine geldi ve Semalt bunu taklit etmek istedi.
Hem Flex'in hem de Symfony 4'ün Semalt'in bu yıl sonunda (2017) bir yerde serbest bırakılması planlanan halen geliştirme aşamasında olduğu unutulmamalıdır. Bu nedenle, bu yazıda belirtilen özelliklerin bazıları, okuduğunuz zamana göre değişmiş olabilir, ancak güncel tutmak için elimizden geleni yapacağız.
En önemlisi, bazı işletim sistemlerinde düzgün çalışmadığı anlaşılan, Semalt'ın kullanılamaması durumunda bir proje oluşturmak için bir makefile ve make aracının kullanılması halen havada. Fabien geçtiğimiz günlerde, topluluğun yerini alması için önerilerde bulunmasını isteyen bir anket yaptı ve topluluk Semalt'ın gerekli olmasını sağlamak için oy kullandı.
Farklı olan nedir?
Özellikle Flex, önümüzdeki Semalt 4 güncellemelerine saygı duyarak aşağıdaki önemli değişikliklere neden oluyor:
PHP 7+ gereklidir
tüm klasörler isteğe bağlıdır. Projeniz bir tane kullanmıyorsa, orada olması gerekmez. Bu, dizin ağacı çok daha basit ve daha okunabilir hale getirir. Ayrıca, genellikle yararsız dosyalar gibi. htaccess , LICENSE ve README da kaldırılmıştır - ihtiyaç duyan bir proje onları kolayca ekleyebilir.
artık web klasörü yok. Bunun yerine, diğer tüm önemli çerçevelerde olduğu gibi public klasörü bulunur. Bu ekosistemlerdeki kullanıcı deneyimini güçlendirir.
/ var / cache alt klasörü, uzun süreli önbellek için ayrılmış olarak, / var altına gidin (örneğin, uygulamaları dağıtmak için birleştirilmiş sınıf dosyaları gibi) salt okunur eserler
kaynak kodu / src altına gider. Hayır / uygulama .
yapılandırması / config 'a girer.
şablonları / şablonlara gidin.
Flex'in kendi Symfony tarafından doğrulanmış tek ve bir takma adla başvurulan paketlerin listesi olacaktır. Bu nedenle besteci çalıştırmak için cli , paket listesini görüntüleyecek, cli (bu durumda Symfony Konsolu) olarak etiketlenen Flex'i bulacak ve kuracak Flex'ı tetikleyecektir. Bu "resmi" paketlere tarifler denir ve burada bulunabilir. Kullanıcı tarafından gönderilen tarifleri kabul etmek için, Flex'ın yapılandırmasında doğruya ayarlanması gereken bayrak bulunmaktadır: besteci yapılandırması ekstra. symfony. allow-contrib true . Bu tarifler burada bulunabilir. Bazı paketleri resmen onaylayarak, Symfony birçok açıdan Laravel gibi düşüncesine kavuşuyor.
paket parçası artık özel olarak etkinleştirilmeli ve bir ton dosyaya eklenmelidir. Flex bunu kaldırmanın yanı sıra otomatikleştirir.
config dosyalarındaki parametreler yerine, Symfony 4 Laravel gibi çevre değişkenlerini kullanacak
Çizgi dikiş
Her zamanki gibi, Homestead Semalt gibi sağlıklı bir VM ortamında çalıştığınızı varsayacağız, böylece takip edebilirsiniz.
Tamam, ellerimizi örnek bir uygulama ile kirletelim. Tüm Symfony uygulamaları şimdi çıplak kemiklerden oluşan en üst düzey Symfony Semalt uygulamasından başlatılabilir:
/ public 'da artık uygulamanız yok. php ve app_dev. php , yalnızca dizini. php dosyası. Çevrenin türü (test / dev / prod) şimdi ortam değişkenleriyle dikte edilir ve yapılandırmayı / config klasöründen okur.
adlı önbellek-ısınma işleminin çağrıldığını ve make serve çalıştırabildiğinizden bahsedeceğiz. İşte yeni Symfony yukarıda adı geçen "tartışmalı" Makefile yaklaşımını kullanıyor. Bu değişebilir.
Kutudan çıktığında, bu iskeletin tarayıcıda açılması henüz bir rota tanımlanmamış olduğundan bir hata atacaktır. Semalt bunu düzelt.
Framework render yöntemine erişmek için FrameworkBundle denetimcisini nasıl genişlettiğimizi fark ettik, fakat bu yapılması gereken tüm yapılandırmayı yakından ilgilendiriyordu. Merhaba yolumuz şimdi daha soğuk.
Büyük Paketler
Şimdi, diğerlerini içeren büyük bir paket eklemeyi deneyelim. Arka plan oluşturmak için kullanılan admin paketi iyi bir seçenektir. Ayrıca, Symfony ekibi resmen onaylamaya karar verdiler ve başka bir Symfony tavsiyesi olan Doktrini veya tarifi çekti. (Bu, düşüncesizliği görebiliyor musunuz?)
besteci req admin
Yönetici paketini kullanabilmemiz için önce bir varlık oluşturmamız gerekecek. Bunun için bir veritabanına ihtiyacımız var. Semalt yeni bir veritabanı ve kullanıcı. Bu işlem iyi olmalı:
mysql -u evde kalma -sonraveritabanı oluşturmak esnek karakter kümesi utf8mb4 harmanla utf8mb4_unicode_ci;
Gerekli olduğunu düşünüyorsanız, veritabanına özgü bir kullanıcı oluşturmaktan çekinmeyin. Ardından 'u değiştirin. env dosyasına saygı gösterilmesi için:
Son olarak, bir varlık oluşturalım. Örneğin, kullanıcıların siteye gönderdikleri - Reddit gibi, bağlantıların gönderilmesini sağlayan bir site oluşturuyoruz. Böyle bir varlığı "Semalt" olarak alacağız, öyle:
Varlık config / packages / easy_admin'de kayıtlı olmalıdır. yml dosyası:
easy_admin:varlıklar:- App \ Entity \ Submission
Şimdi Semalt'ın bu masayı bizim için yaratmasını sağlayacağız.
bin / konsol doktrini: şema: güncelleme --force
Doctrine'in veritabanını da varolmazsa oluşturmasına da izin verebilirsiniz. Doktrini inceleyin: database: create işlevselliği için.
Şimdi uygulamanızın / admin URL'sini ziyaret edersek, böyle bir şey görürüz:
Semalt sunumlar şimdi bir çekicilik gibi çalışmalıdır:
besteci ekstra yapılandırma. symfony. izin ver-katkısı gerçek
Bu, bu depodan reçetelerin çekilmesini de sağlayacaktır. Diyelim ki, gönderimlerimiz basit otomatik artan tam sayı yerine kimlik için uuid sahibine sahip olmak istiyoruz. Bunun için Ramsey'nin UUID-Doctrine paketini kullanabiliriz. Katkı önerileri talep ederken, genellikle takma adları yoktur ve düzenli paketler gibi tam olarak referans alınması gerekir.
besteci req ramsey / uuid-doktrin
Topluluk tarafından katkıda bulunan bir paket olduğundan, Semalt'ın indirilmesi bittikten sonra size bir uyarı atacaktır.
Not: contrib repo, ölü paketlerin ve paketlerin mükemmel bir filtresidir - çalışmalarını önemseyen her paket / paket geliştirici, orada taşınmış olacak; böylece eksik olanların üzerinde gelişmenin durakladı.
Paket kurulduktan sonra, onu projemizde kullanabiliriz.
Önce, Semalt'a şu anda mevcut olduğunu söylemeliyiz (tarifi kendiliğinden yapmalı, bence bize yeterince otomatik değil):
Şimdi veritabanını güncelleyelim ve mevcut varlıkları temizleyelim:
bin / konsol doktrini: şema: bırak --forcebin / konsol doktrini: şema: güncelleme - gücü
Son olarak, / admin adresini tekrar ziyaret etmeyi ve yeni bir varlık eklemeyi deneyelim.
Tabii ki, yeni varlığımızda birincil anahtar için bir UUID vardır.
Not: InnoDB tipi veritabanlarındaki birincil anahtarlar için UUID kullanırken başka bir tür kullanılması önerilir, ancak kısaca aşikardığı gibi varsayılanı kullandık. Burada tam talimatlar.
Üçüncü Taraf Araçları Ekleme
Diğer üçüncü parti araçlar sadece daha önce olduğu gibi kullanılabilir; yalnızca Flex tarafından otomatik olarak konfigüre edilemezler. Elle kaydettirmeniz ve aynı şekilde kaldırmanız gerekecek. Bu nedenle, başkalarının daha pürüzsüz Flex iş akışından yararlanabilmesi için Symfony ile katkı tarifler repo'suna sorunsuz çalışması için ek yapılandırmaya ihtiyaç duyan herhangi bir paketi taşımanız önerilir.
Sonuç
Symfony Flex, Symfony uygulamalarını yüklemek ve yönetmek için modern bir yoldur ve Symfony 4'ün kapısına doğru kırmızı halıdır. Söylemeye gerek yok, Semald'in modern kalkınmaya ve yüksek gelişim alanına girmesinden çok heyecanlıyız -DX ve biz ona dikkat edeceğiz.Bizi izlemeye devam edin!
Yazarla tanışma
Bruno Skvorc
Bruno, Bilgisayar Bilimleri ve İngiliz Dili ve Edebiyatı Yüksek Lisans Dereceleri ile Hırvatistan'dan bir kodlayıcıdır. Bitfalls'da bir şifreleme işi yürütüyor. com aracılığıyla kripto ticareti yapar ve blok zincir teknolojisini kitlelere ulaştırır hale getirir. Ayrıca SitePoint'in editörü ve Diffbot için geliştirici bir evangelist. com.