Kezdőoldal » Számítástechnika » Programozás » Mi lehetett a baj a kodommal?...

Mi lehetett a baj a kodommal? Elutasitottak allasrol php gyakornoki

Figyelt kérdés

Feladat:

It's a really simple php application, based on an MVC pattern. I'd like to

have a system which is implemented in core PHP (no framework or CMS can be

used) and it is:


- URL mapped (.htaccess rewrite)

- Based on an MVC pattern

- Object oriented

- Uses database (MySQL)


Requirements:


The application should have 2 database tables: users (id, name) and

advertisements (id, userid, title).

* As a user I'd like a page that shows the list of the users existing in

the system.

* As a user I'd like a page that shows the list of the existing

advertisements in the system (and the related user's name of course)

* They should be different pages

* So the system should contain 3 pages:

-> index, with the links to the user list and the advertisement list

-> user list

-> advertisement list

-> The whole system should have a minimalist design (css)


In summary:


So it's a 3 paged application, with a minimal design, and database access,

which is URL mapped, and based on an MVC pattern. No framework or CMS

allowed to use.

I need the source of the application, which I expect to be about 6-8 files.

Here can be a difference of course.


Requirements regarding the implementation:

- Must be object oriented!

- Must have at least 1 layer under the Controller layer

- Model and service methods should be separated. Model here should be

clear, used only for representation.

- Must have a nice, and well documented code

- A very simple css, in minimal style


This is important for us, it helps with the decision. If you can solve

this, you definitely can fit to our project.


Let me know if you have any questions.


Megoldasom:

[link]


2023. szept. 15. 19:00
 1/6 anonim ***** válasza:
100%
Használtál valaha egy keretrendszert is?
2023. szept. 15. 20:30
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
Nem
2023. szept. 15. 20:36
 3/6 anonim ***** válasza:
100%

Abszolút nem vagyok PHP szakértő, de ez MVCS, nem MVC. És én totálisan indokolatlannak látom itt a service réteget, ezzel együtt azt érzem, hogy nem teljesen világos neked, hogy mi kerül a service-be és mi a modelbe. Mondjuk jelen esetben szerintem a service-be kell semminek se kéne lennie.


Ezen kívül, az én ízlésemnek kicsit túl sok a view-ba való kód az index.php-ben, ugyanúgy, túl sok a nem oda való logika a view-ban. Szerintem nincs ez rendesen elszaparálva, nagyon keveredik az egész.


A db.php is olyan fura kicsit. Eleve, ha az .env fájl nem létezik, felesleges vizsgálni bármi mást is, azonnal kell dobni egy exceptiont. De nálad se a file_exists, se a mysqli nem dob kivételt. Illetve a mysqli dob, ha a MYSQLI_REPORT_STRICT be van állítva, de nálad ezt nem látom.


Az exceptiont is letudtad annyi, hogy Exception aztán kész. Én ezt úgy szoktam megoldani, hogy minden kivételre külön hibaosztályom van, mondjuk van egy általános AccountRepositoryException, ami az Exception-ből származik, és van egy AccountNotActivatedException, ami az AccountRepositoryException-ből származik, és akkor dobja a rendszer, ha a felhasználó nem aktivált fiókkal próbál belépni. Lehet, hogy te is így szoktad csinálni, csak kevés volt rá az időd.


Illetve olyan apróságok, mint hogy használhattál volna PDO, a prepared statement-ek miatt.

Esetleg lehet, hogy érdemes lenne kicsit elmenned statikus típusosság felé, megadni a paraméterek típusát, a visszatérési értékek típusát.

Nálam pl. az account entity osztályban, ami egy accountot reprezentál, a propertyk inicializációja, így néz ki:

private ?int $id = null;

private ?string $username = null;

private ?string $email = null;

private ?string $newemail = null;

private ?int $regdate = null;

private ?int $lastlogin = null;

private ?string $password = null;

private ?int $status = null;

private ?string $activationcode = null;

private ?string $passwordrecoverycode = null;

private ?string $role = null;



Továbbá lehetne használni a PHP újabb szolgáltatásait, pl. a constructor property promotiont.


Amúgy mennyi időt adtak erre a feladatra?

2023. szept. 15. 20:38
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

Koszonom.

48orat

2023. szept. 15. 20:41
 5/6 anonim ***** válasza:
53%

A JS, CSS és akár a View részt rakhatnád Assets, vagy Resources mappába.


Ajánlom figyelmedbe, hogy nézd meg pl a Laravel mappa szerkezetét.


Igen ami nekem is feltűnt, mint a fenti válaszolónak, hogy Service-be raktad amit, amúgy a modellbe kellett volna.

2023. szept. 16. 20:41
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:
28%
6 millió oka lehet annak, hogy nem téged választottak. Nem biztos, hogy azért, mert rosszul oldottad meg a feladatot. Lehet mások is jól oldották meg, csak kevesebb a bérigényük. Lehet hogy valaki gyorsabban,hatékonyabban oldotta meg. Ha nem téged vesznek fel, azt nem azt jelenti, hogy nem vagy elég jó....hanem azt, hogy volt nálad jobb.
2023. szept. 26. 14:15
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!