Konventsiyalar nomini yoki katalog tuzilishini

Men PHP dasturchisiman, lekin muhokama qilishni istagan narsaga Java ta'sir qiladi.

Bir nechta tillarda venger yozuvlari va nomlangan konvensiyalari haqida ba'zi maqolalar o'qigach, Java interfeysi uchun nomlash shartnomasi qanchalik aniq ekanligini isbotladim, menda bitta savol bor.

Ob'ektlar to'plamlari ishini ko'rib chiqsak, biz AbstractCollection deb nomlangan Abstract Class va Lists deb nomlangan aniq sinfga ega bo'lganimizda Interface ro'yxatlari ?

Savol Java adabiyot qoidalarida, ListsInterface yoki InterfaceLists kabi interfeyslar uchun prefiks yoki sufix yo'q.

Lists IS an Interface name and, obviously, at least in PHP, two files in same directory cannot have the same name of a class or interface.

Har bir sinfga interfeys kerak emas, bilaman, lekin agar men dasturiy guruhga o'tishga qaror qilsam nima bo'ladi? Boshqa dasturchilar sinflardan foydalanishlari mumkin, lekin ular qanday ijtimoiy-siyosiy usullarni taklif qilishlari uchun sinf fayllarini ochmasliklari kerak.

Interfeysni o'qib, hamma narsa aniq.

Katalog tarkibi nuqtasi interfeysning bir xil nomi bilan va uning ichida aniq sinf faylini o'z ichiga olgan kichik katalogni qo'shish imkoniyatidan kelib chiqdi. Masalan,

/  
/Collections  
/Collections/Lists.php <-- Interface  
/Colection/Lists/Lists.php <--- Concrete Class  

Endi nima?

0

2 javoblar

Interfeys va sinfga bir xil nom berilmasligi kerak. Hech qachon. O'quvchilaringiz uchun.

Sizning muayyan muammolaringiz konventsiya bilan bog'liq emas deb o'ylayman, lekin aniq kodlash Lists muammosi bilan interfeysga o'xshamaydi. Ro'yxat qiladi. Biroq, bunday holatda dastur sinfida List_DoublyLinked va List_SinglyLinked (yoki siz aytgan har qanday ro'yxat) kabi aniqroq ism bo'lishi mumkin.

1
qo'shib qo'ydi
Men buni bilaman. Lekin, menimcha, buning teskarisi bo'ladi. Ro'yxat (ko'plik) Interfeysni ifodalaydi, chunki uni amalga oshiradigan har bir narsa yagona ro'yxat (yagona) bo'ladi. Ayniqsa, men bu sinflarni yoqtirmayman: P.
qo'shib qo'ydi muallif Bruno Augusto, manba
Menga o'xshab yoyilgan tramvaylar uchun har qanday ta'rifni aniqlash uchun List literal ismidan foydalanib, "ro'yxat" so'zining zaxirasi sababli bajarilmaydi; juda baxtsiz.
qo'shib qo'ydi muallif Dan Lugg, manba
@BrunoAugusto ClassesWithVeryLongNames yaxshi narsadir. Ular tavsiflovchi. Agar siz ism-sharif kodini ishlatayotgan bo'lsangiz, siz ularni kodingizda boshqa qisqa nomlardan foydalanib, boshqa nomlarni belgilashingiz mumkin;)
qo'shib qo'ydi muallif NikiC, manba

Men Java o'rniga PHP nomlash qoidalarini tekshirishingiz kerak deb o'ylayman.

http://framework.zend.com/manual/en/coding - standartlar.noming-conventions.html

Zend yaxshi ishlarni amalga oshiradi, deyarli barcha ishlarni ko'rib chiqadi.

Symfony boshqa ( http://trac.symfony-project.org/wiki/HowToContributeToSymfony#CodingStandards ega ), Nok boshqa bor ( http://pear.php.net/manual /en/standards.php ).

Sizning holatlaringizga ko'ra, interfeys interfeysi ekanligini ko'rsatish uchun, Zend sizning interfaolliklaringizga qo'shimchalar kiritishingizga majbur qiladi. Demak, sizning tuzilish tuzilishi shunday bo'lishi kerak:

Collections/
Collections/ListsInterface.php
Collections/Lists/ListAbstract.php
Collections/Lists/MyList.php

Ushbu post sizning savolingizga javob berishini bilmayman, lekin umid qilamanki, bu yordam beradi.

1
qo'shib qo'ydi
Oxirgi kunlarda men bir necha nomlash konvensiyalari haqida o'qigan edim va Java'lar men topishim mumkin bo'lgan eng oqlangan kishi edi. Men bunday prefikslarga (yoki qo'shimchalarga) to'sqinlik qilishga harakat qilaman, lekin hozirgacha hech qanday imkoniyat yo'q. :(
qo'shib qo'ydi muallif Bruno Augusto, manba
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin