Pim-community-dev: Kelas proxy doktrin tidak dibuat setelah menambahkan properti kategori khusus

Dibuat pada 15 Jun 2017  ·  15Komentar  ·  Sumber: akeneo/pim-community-dev

Saya mengajukan pertanyaan

Hai,

Saya mengikuti buku masak untuk menambahkan properti yang tidak dapat diterjemahkan ke entitas kategori di 1.7.5 CE (ORM).

Semuanya bekerja dengan baik di lingkungan pengembang, tetapi setelah beralih ke prod, saya menghadapi app/cache/prod/doctrine/orm/Proxies/__CG__PimBundleCatalogBundleEntityCategory.php): failed to open stream: No such file or directory .

Saya mencoba untuk menghangatkan cache secara manual, tetapi ini hanya menghasilkan kelas proxy doktrin untuk entitas kategori kustom baru saya yang memperluas BaseCategory. Satu-satunya solusi yang saya temukan sejauh ini adalah menyalin kelas proxy ini ke __CG__PimBundleCatalogBundleEntityCategory.php yang mungkin bukan praktik terbaik ;-)

Bisakah Anda memberi saya petunjuk apa yang saya lewatkan?

Terima kasih!

question

Komentar yang paling membantu

Halo @DvidFeller ,

Anda dapat mencoba memanaskan cache prod Anda dengan perintah berikut:
php app/console cache:warmup --env=prod --no-debug

Sebagian besar waktu itu memperbaiki masalah cache.

Salam

Semua 15 komentar

Halo @DvidFeller ,

Anda dapat mencoba memanaskan cache prod Anda dengan perintah berikut:
php app/console cache:warmup --env=prod --no-debug

Sebagian besar waktu itu memperbaiki masalah cache.

Salam

Halo @osss ,

terima kasih atas jawaban cepatnya! :)

Sayangnya, itulah yang sudah saya coba beberapa kali. Tampaknya berfungsi (tidak ada output kesalahan), tetapi __CG__PimBundleCatalogBundleEntityCategory.php masih hilang setelahnya.
Selain itu saya memeriksa pemetaan entitas melalui php app/console doctrine:mapping:info .

Saya tahu bahwa ini lebih merupakan masalah doktrin atau symfony daripada yang benar-benar terkait dengan akeneo, tapi saya rasa saya kehilangan sedikit detail dalam konfigurasi AcmeCatalogBundle dalam hal menimpa BaseCategory.

Atau apakah menurut Anda lebih buruk mencoba menurunkan versi php ke 5.6?

Halo @DvidFeller ,

Setelah berdiskusi dengan @ damien-carcel, dia memberi tahu saya bahwa ada sesuatu yang hilang di dokumentasi, kami telah memperbaruinya kemarin.

Bisakah Anda memeriksa Category class , mungkin ada metode yang hilang:

public function getTranslationFQCN() { return CategoryTranslation::class; }

Salam

Halo @osss ,

Ah ok, aku akan memeriksanya. Saya pikir metode ini hanya diperlukan untuk bagian kedua dari dokumen (properti yang dapat diterjemahkan). Karena saya hanya menambahkan kotak centang, saya "mengabaikan" bagian itu. ;-)

Saya rasa saya akan mencoba memulai kembali dan membuat properti yang dapat diterjemahkan.

Terima kasih atas bantuan dan salam Anda,
David

Saya mendapat masalah yang sama dengan versi terbaru 2.0. Persis masalah yang sama dan saya telah mengikuti dokumen yang sama.

Dan saya telah menambahkan bidang ini sebagai dapat diterjemahkan. Ini ditambahkan ke database, tetapi masih tidak berfungsi di lingkungan produksi.
Inilah yang saya dapatkan dari server produksi itu sendiri dan saya menemukan kesalahan yang sama. "" Kesalahan Kompilasi: memerlukan (): Dibutuhkan pembukaan yang gagal '/opt/bitnami/apps/akeneo/htdocs/var/cache/prod/doctrine/orm/Proxies/__CG__PimBundleCatalogBundleEntityCategory.php'

Halo @Nebo .

Mohon maaf karena buku masak ini tidak berfungsi untuk Anda. Saya baru saja mengujinya sepenuhnya dari pim-community-standard , ini berhasil untuk saya, hanya ada satu kesalahan dalam FormType terkait widget: notasi lama tidak berfungsi lagi dengan Symfony 3.4.

Anda dapat melihat kode saya di permintaan tarik ini https://github.com/damien-carcel/pim-community-standard/pull/1. Kesalahan yang saya bicarakan adalah di commit terakhir. Saya akan memperbarui dokumentasi secepat mungkin.

Saya tidak sepenuhnya mengikuti buku masak: semuanya ditempatkan di AppBundle dan semua layanan dan parameter dinyatakan dalam services.yml . Saya juga menambahkan tipografi PHP 7.1. Tapi ini tidak mengubah validitas buku masak (kecuali untuk masalah textarea tentunya).

Silakan coba untuk membandingkan kode Anda dengan saya, Anda mungkin lupa layanan / parameter override.

Juga, jangan lupa contoh kode di buku resep bisa di-scroll. Saya melewatkan metode setDescription di kelas CategoryTranslation pada awalnya.

Terakhir, jangan lupa untuk membersihkan cache Anda (hapus sepenuhnya dengan rm -rf var/cache/* ), mulai ulang FPM dan baru kemudian perbarui skema Doktrin Anda.

Anda juga dapat mengalami masalah cache jika daemon antrian Akeneo (untuk impor / ekspor) sedang berjalan: ini akan mencegah cache APC Anda dibersihkan, dan kemudian mengotori cache Symfony Anda lagi. Jika Anda menggunakan daemon antrian, maka prosedur yang benar adalah:

  • hentikan daemon
  • rm -rf var/cache/*
  • mulai ulang FPM
  • mulai daemon lagi
  • perbarui skema Doktrin Anda

Btw, tolong jangan posting tentang masalah tertutup, karena biasanya tidak ada yang menjawab / melihatnya. Saya hanya melihat komentar Anda karena saya telah ditandai dalam percakapan dan mendapat pemberitahuan dari GitHub tentangnya. Harap lebih suka membuka edisi baru dan menautkan edisi asli.

Beri tahu saya apakah ini membantu Anda.

Salam,
Damien

Hmmm, itu aneh. Saya telah melakukan semuanya seperti yang disarankan, tetapi saya tidak dapat membuatnya bekerja. Saya juga mencoba menambahkan kategori tanpa terjemahan. Jadi saya pikir ini tidak mengganggu saya.

[2018-01-12 05:55:50] request.CRITICAL: Uncaught PHP Exception Symfony \ Component \ Debug \ Exception \ FatalErrorException: "Compile Error: require (): Dibutuhkan pembukaan yang gagal '/ opt / bitnami / apps / akeneo / htdocs / var / cache / prod / doktrin / orm / Proxies / __ CG__PimBundleCatalogBundleEntityCategory.php '(include_path ='.: / opt / bitnami / php / lib / php ') "di / opt / bitnami / apps / akeneo / htdocs / vendor /doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php baris 209 {"pengecualian": "[objek] (Symfony \ Component \ Debug \ Exception \ FatalErrorException (kode: 0): Kesalahan Kompilasi: memerlukan (): Gagal membuka diperlukan '/opt/bitnami/apps/akeneo/htdocs/var/cache/prod/doctrine/orm/Proxies/__CG__PimBundleCatalogBundleEntityCategory.php' (include_path = '.: / Opt / bitnami / php / lib / php') di /opt/bitnami/apps/akeneo/htdocs/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php:209) "} []

Salam,
Nebojsaa

pim_enrich.form.type.category.class salah, Anda menggunakan Acme alih-alih bundel Anda.

Yang lainnya baik-baik saja. Saya baru saja menggunakan bundel Anda dengan pim-community-standard 2.0, hapus perutean (tidak berguna) dan konfigurasikan penggantian entitas di app/config/config.yml . Saya dapat mengedit dan menyimpan kategori dengan bidang baru Anda tanpa masalah apa pun.
Saya juga perlu menonaktifkan validasi Anda di bidang Anda, atau saya tidak dapat menginstal perlengkapan icecat (Anda memvalidasi bahwa bidang Anda tidak boleh kosong, tetapi tidak ada di perlengkapan saya 😉).

Jadi menurut saya masalahnya berasal dari server Anda. Dan melihat kesalahan di posting Anda sebelumnya, itu terlihat jelas sebagai masalah cache PHP. Sesuatu mungkin sedang berjalan di server bitnami yang mencegah cache dihapus saat Anda memulai ulang FPM.

Salam,
Damien.

Hei Damien,
Baiklah, saya tidak pernah menjadi admin sys dalam hidup saya. Sekarang saatnya.

Mungkin beberapa tip kecuali yang dari atas.
Tahukah Anda di mana cara menghentikan dan memulai daemon dan memulai ulang fpm?
Saya menggunakan php 7.1.
Apakah Anda tahu perintah mana yang harus saya gunakan?

Untuk memulai ulang FPM, ini akan bergantung pada server Anda. Distribusi Linux apa yang Anda gunakan? Kebanyakan dari mereka sekarang menggunakan systemd sebagai init, jadi Anda seharusnya dapat memulai ulang FPM dengan menjalankan sudo systemctl restart php7.1-fpm (nama proses FPM dapat berubah dari satu sistem ke yang lain).

Antrian adalah proses php sederhana yang dapat Anda luncurkan secara manual atau menggunakan supervisor. Anda dapat menemukan petunjuk rinci di sini: https://docs.akeneo.com/latest/install_pim/manual/daemon_queue.html.

Hmm, sudah berhasil sementara ini.
Sekarang ia menampilkan "Hello World!" - index.html.twig Default saya ??

Oh ya. Normal. Anda menggunakan perintah generate:bundle , bukan?
Anda perlu menghapus tampilan Default/index.html.twig , pengontrol dan perutean dari bundel Anda (jangan lupa untuk menghapusnya dari app/config/routing.yml juga). Mereka tidak berguna.
Maka itu harus berhasil.

Kesalahan berikutnya :-D
Tidak, saya hanya bercanda ..
Terima kasih banyak.

selamat pagi salam untuk semuanya Saya memiliki masalah kecil, saya sedang mengerjakan proyek dengan Symfony 4, saya memiliki database proyek saya di postgressql, saya menginstal manajer ini, dan saya membuat koneksi dengannya dengan kerangka kerja tersebut, tetapi ketika saya mencoba untuk menghasilkan entitas dari basis data itu dengan perintah php bin / konsol doktrin: mapping : import "App \ Entity" annotation --path = src / Entity, ini memberi saya kesalahan berikut:

Dalam ImportMappingDoctrineCommand.php baris 151:

Peringatan: file_put_contents (src / Entity / "tsubtipoanestesia" .php): gagal membuka aliran: Tidak ada file atau direktori seperti itu.

Saya ingin tahu bagaimana mengatasinya.
Terima kasih.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

pardahlman picture pardahlman  ·  4Komentar

lpxavi picture lpxavi  ·  4Komentar

Jacky75 picture Jacky75  ·  3Komentar

gotgelf picture gotgelf  ·  5Komentar

grabelle picture grabelle  ·  3Komentar