Questions tagged [php]
Questions about PHP, a widely-used general-purpose scripting language that is especially suited for Web development.
2,059 questions
2
votes
2
answers
150
views
How to namespace global function overrides?
In PHP, trim() exists.
By default the second parameter is " \n\r\t\v\x00"
I wish to introduce my own version which doesn't deviate far from the core functionality:
// Trim whitespace in ...
3
votes
3
answers
235
views
Best Practices for Implementing a Heartbeat Feature in a Laravel App to Track Offline Status
I'm trying to implement a heartbeat feature for offline tracking that just sends an offline message to the server once the web browser app (Laravel-based) is offline. Ideally it will ping the app's ...
3
votes
1
answer
194
views
How should User behaviour depending on role be design as OOP
Imagine I got user which might be either author, administrator, reviewer
An author have relation on book that he wrote.
An administrator have relation on banned user (we track which administrator ...
1
vote
1
answer
152
views
Best practice for integrating UI and dynamic user-specific content using a Flask app
I am building a website that uses a recommendation system. Users submit a form which is sent to the backend for the recommendation logic calculation; the recommendation response is sent back to the ...
2
votes
1
answer
200
views
Is widening parameter types in a PHP interface implementation a good practice?
I have an interface defined as follows:
interface MyInterface
{
public function setMyMethod(int $a);
public function getMyMethod(): int;
}
And I have a class that widens the parameter type:
...
-2
votes
1
answer
103
views
PHP secure storage for sensitive document uploads [closed]
I need help deciding how to securely store sensitive docs uploaded via a PHP script. I realize I'm not personally qualified for this task (if I was I wouldn't be asking this question) but need to know ...
0
votes
1
answer
393
views
How to share transaction across multiple repositories in DDD?
We are trying the Domain Driven Development (DDD) while working on a project.
We've got a Product aggregate.
We've got a ProductRepository to load/save Products.
We've also got a Timeline aggregate, ...
0
votes
1
answer
443
views
DTO Interfaces naming convention in PHP
It might be that my question would sound a bit stupid but I would like to find the best way for naming my DTO interfaces. In my PHP application I have following DTO types:
Simple (which contains a ...
4
votes
2
answers
315
views
Interface + Trait vs Abstract Class
While developing my application I faced an interesting situation:
I have multiple DTO's which are almost identical in terms of methods, only properties are different. For example I have AccountDTO ...
1
vote
1
answer
222
views
DTOs and Single-responsibility principle
I'm developing a PHP application and trying to understand DTOs in context of single-responsibility principle. Being more specific, is it a bad practice having helper methods like toArray(), getValue(),...
-3
votes
1
answer
146
views
Mock an API for development purpose (no testing)
If I want to implement a connection from my software to an API, which is documented but not accessible yet, what is a common way to imitate the API until it is available?
My first idea was to mock the ...
0
votes
1
answer
231
views
Our php codes base has 6 different ways to do INSERT … ON DUPLICATE KEY UPDATE, how do I fix it?
Our php codes base has 6 different ways to do INSERT … ON DUPLICATE KEY UPDATE. It happened over years because the php framework is evolving and my team members come and go, although I won't say we ...
2
votes
1
answer
195
views
How is $this provided in PHP?
I got a fundamental question about the $this keyword in PHP and how it is defined. Pracitcally, I know what it is and what it does. But I am interested in how it is provided / implemented?
For example,...
2
votes
2
answers
408
views
Unit testing for non-stateless units - how?
Firstly let me say I have never written a unit test in my life. I am trying to get the hang of PHPUnit, and so far it's working pretty well for me so far as "stateless" functions (that ...
-1
votes
1
answer
251
views
Best practices for organising PHP files?
I am currently writing a PHP / JavaScript application library, which I intend to use in the future for several other applications. The library includes functionality for handling a database, creating ...
0
votes
2
answers
339
views
Should I split backend into legacy and modern app to make the rewrite feasible?
My vanilla PHP backend app needs to be rewritten due to very poor design and lot of unstructured code. The legacy app is very large and the team small, so doing full rewrite in limited time is quite ...
1
vote
3
answers
524
views
frontend server obtain data from backend server, or frontend server return page with javascript that obtain data from backend server?
I'm currently learning how to separate frontend server and backend server. However, i'm not sure which approach should i take between the two
Frontend server obtain data from backend server and ...
2
votes
0
answers
231
views
What is the proper pattern for a singleton SETTINGS class load using composer?
I have a class file Settings.php that loads an ini file and assigns the content to a constant for global access and reducing clutter. The class file contains the logic for loading the settings and ...
3
votes
2
answers
596
views
Is it okay to use Dependency injection only because of unit testing?
I have a class that has dependencies that I know are not going to change.
class ConversationFinder
{
public function __construct(
protected Conversation $conversationDbFinder = new ...
1
vote
2
answers
327
views
Best way to protect action links from CSRF
An application has a multifactor login.
The user logs in with its e-mail and password, and then the following screen asks for a one time password received via e-mail or generated by a mobile app.
In ...
0
votes
0
answers
70
views
How to group together common allowed descendants of a vertex in a tree data data structure?
I created an abstract class to represent a vertex in a tree structure. Later, a requirement was introduced where certain types of vertices are not allowed as descendants of certain other vertices. So ...
1
vote
1
answer
715
views
Languages with PHP-like traits?
PHP have what it calls "traits" which despite the name is not like traits in Rust, Scala or other languages.
In many other languages with support for traits, a trait create a is-a relation. ...
3
votes
4
answers
504
views
Organize and maintain a lot of cron jobs
I am working on a fairly large project written in PHP (Yii2) in which we are increasingly using cron for background tasks, such as generating caches, reports, etc.
We have started to move the hourly ...
1
vote
1
answer
258
views
Why does PHP have int and float data types?
I have realized that PHP can treat string variables as numbers (as long as int or float values are stored in the string variables), for example:
<?php
// Declaring two int numbers and one float ...
0
votes
3
answers
2k
views
Is it code smell to make an abstract child class override a parent method which only calls its own abstract method
Is it code smell to make an abstract child class implement a method, which overrides a parent method, whose only purpose is to call another abstract method? I want to make sure that anyone who ...
0
votes
1
answer
113
views
How to refactor parallel inheritance tree?
I have a (php) program, which must change yearly. This program calculates tax for every year and there are sometime changes in requirements.
First, the user fills their incomes, expenses, etc.
Then ...
3
votes
2
answers
2k
views
Is it good design to have a repository update multiple entities?
I'm building a web application using Laravel. I use the repository pattern as my data layer.
Imagine there's some entity like Product and a product can be assigned to a ProductCategory.
The Product ...
0
votes
1
answer
240
views
Why do the arguments in PHP's array_udiff() comparison function not always stay "in order"?
Recently I was trying to use PHP's array_udiff() function to compare a value in a multi-dimensional array with a plain old string value. I tried something like this:
// E.g. $employees[0]["name&...
0
votes
0
answers
2k
views
Best way to check for truthy values in PHP?
In PHP, there are several ways to check whether a value is true, or similar:
true === $v, only works for bool
true == $v || !!$v, works with int and string, but a non empty array can also be ...
2
votes
2
answers
288
views
To maintain SOLID, should data preparation, conversion, and pre-computation for purposes of saving an object, be separate from data persistence layer?
I am facing a common situation where I am saving some values into database from a business object. I am using a relational database and usually I only need to save a few items that are part of the ...
1
vote
3
answers
344
views
Should you reuse a PHP exception's code when wrapping it?
When catching and wrapping an exception in PHP, assuming the new exception doesn't have a meaningful code of its own, should you also use the caught exception's code value? or the default value? In ...
-2
votes
1
answer
195
views
Using Apache and PHP to provide Frontend, possible to use PHP also for backend?
I have a design question to all the programmers out there.
Until now, I wrote most of my software in vb.NET oder C#, especially if I needed a Frontend.
Now I would like to have a Frontend which is ...
-2
votes
2
answers
73
views
How to serve customized content to each user, based on targeting criteria?
In my PHP Laravel application, I want to display special offers to users, depending on the quality of their house(s).
There are 4 Models: User, House, Offer, OfferTargeting.
Each User can have many ...
0
votes
1
answer
745
views
Validation in both controller and my service classes?
I use the Laravel framework.
I've got controllers, like CustomerActivityController, and I've got a service layer with services like CustomerActivityService.
Say I want to create a new customer ...
0
votes
2
answers
205
views
How to refactor code so that a facade class could be decoratable?
I've got a class that is a facade class (encapsulates complex-ish behaviour for reusability). It has a function called manage (the class is called Manager):
function manage()
{
$entityBuilder = '...
1
vote
0
answers
662
views
CQRS, DDD and batch, CRUD-y operations
How to perform basic CRUD operations (especially batch) by playing with DDD and CQRS?
Let's say I have a list of IDs in my controller that need to be removed (soft delete). Currently, I treat this ...
0
votes
2
answers
156
views
Decisions according to environment
I am trying to convince others that the following first code snippet is bad practice and the second snippet is best practice.
Bad practice:
// There is only one implementation of Adapter
public ...
1
vote
2
answers
655
views
Share data between users without a database, php [closed]
How would I create for example a live chat, where you "post" a piece of text and it is displayed to other users in a "chat room", without the need of permanently storing it.
My ...
0
votes
1
answer
310
views
Why doesn't PHP support function overloading (even though it supports type hinting)? [closed]
Why doesn't PHP support function overloading (even though it supports type hinting)? For example why we can't do something like this:
function foo(Student &s)
{
}
function foo(Employee &e)
{
...
-3
votes
1
answer
77
views
Server performance and CMS scalability [closed]
I have been given the job of a colleague who has resigned and I don't know where to start. I hope you can give me some hints:
It is about a CMS made from scratch (Javascript/jQuery/PHP/MySQL) which ...
0
votes
2
answers
1k
views
How to concretize a return type when inheritance is used?
I have two repositories:
class RepositoryOne
{
/**
* @param int $id
* @return ModelOne
*/
public function getById($id)
{
// Search and find a ModelOne model in the ...
0
votes
2
answers
351
views
Design patters for handling invoice "payment_status" when split payments are involved
Requirements
I'm building a system with the following requirements.
An Invoice can be paid using multiple Payments (e.g a customer pays the invoice in 2 installments)
A Payment can be allocated to ...
0
votes
1
answer
211
views
Strategy pattern with implemented public method
New to design patterns so my question maybe silly.
I want to use strategy pattern for returning data from a databases in the same format.
Nevertheless it varies the query on the underlying database ...
2
votes
1
answer
1k
views
Static validator in DDD value objects
I have a value object to hold a user id number as a string. This number has a unique format throughout my domain. So, it's being validated inside the object during instantiation and an exception is ...
1
vote
2
answers
502
views
QR Code Scanning with location check
I would like to make an order-system with QR-Codes which is online.
How I imagine it to work:
A customer visits a restaurant. There is a QR-Code on his table which takes him to a public webpage where ...
3
votes
4
answers
3k
views
How to store a password so that it can be passed to another site/service which is expecting a plaintext input
I am developing a website and I would like to allow users to use XMPP for live chat. I would like users to have the option use an existing XMPP account if they wish and store their XMPP username and ...
0
votes
2
answers
72
views
Getters and (static) processor vs multiple processor wrappers
I've got a class which stores two data series like so. I need to do some complicated processing on each of these arrays, but for now we'll just get the average of each data series. I could either do ...
1
vote
1
answer
155
views
What is the best approach to use a common variable in multiple method in a request in laravel [closed]
I have a $c variable that is calculated at the beginning of the request. After calculating this several nested methods use it as a part of their job. Is it better that I pass down the $c variable to ...
3
votes
2
answers
223
views
When is it Counterproductive to Separate PHP and HTML
Understanding that it is less load on the server to not have to parse HTML, when does it work the other way, as far as server performance.
The majority of my Web sites are database-driven - often the ...
40
votes
7
answers
10k
views
Why do library developers deliberately break existing code?
Today, I updated ZBateson\MailMimeParser the PHP e-mail parser library from 1.x to 2.x.
Soon enough, my PHP error log started filling up with errors.
Noting where it happened, I found out that it had ...