SShortSingh.
Back to feed

Strategy Pattern in PHP and Laravel: A Fix for Bloated if-else Logic

0
·14 views

As Laravel applications grow, shipping calculators and similar features often devolve into deeply nested if-else blocks that become hard to read, test, and extend. The Strategy Pattern addresses this by extracting each algorithm or behavior variant into its own dedicated class behind a shared interface. This approach allows behaviors to be swapped at runtime without modifying existing code, upholding the Open/Closed Principle. A shipping calculator spanning multiple countries, methods, and discount tiers can produce hundreds of conditional combinations, all of which the pattern helps isolate and manage. The GPS navigation system serves as a practical analogy, where each route type becomes its own strategy class rather than a branch in a monolithic function.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingHacker News ·

Richest 0.1% of People Produce More Carbon Emissions Than Nearly Half of Humanity

A report citing Oxfam, linked from a Hacker News discussion, finds that the richest 0.1% of the world's population, roughly 8 million people, generate more carbon pollution than about 3.5 billion people. The figure highlights the sharp disparity in emissions between the ultra-wealthy and much of the global population. The source material available here is limited to the headline and link, so the full methodology and time frame are not confirmed. The findings are presented by Oxfam as a press release on the emissions footprint of the ultra-rich.

0
ProgrammingDEV Community ·

GitHub's new star history endpoint powers a README star chart generator

GitHub restricted its stargazers listing to repo admins and collaborators this year, which broke existing star history tools. In September it added a star history endpoint that returns stars grouped by calendar week for any public repo without authentication. The author built a README chart generator on it, fetching pages in parallel and summing weekly totals, which matched live star counts on seven tested repos. Because README images cannot run scripts, the chart is a server-rendered Svelte component producing an animated SVG, while a separate plain SVG converted to PNG handles social previews.

0
ProgrammingDEV Community ·

Why Word Counting Is Harder Than a Simple Space Split Suggests

A common naive word counter splits text on whitespace, which breaks on contractions, hyphens, em dashes, decimals, and emoji. The article argues this is a text segmentation problem rather than a rounding issue. It recommends the browser's Intl.Segmenter API, using word granularity and filtering by isWordLike to exclude emoji from word counts. It also notes that text.length counts UTF-16 code units rather than visible characters, so grapheme granularity is better for character counts. The author discloses that they built a browser-based word counter that processes text locally without uploading it.

0
ProgrammingDEV Community ·

How Shell Redirection and Pipes Work: >, >>, 2> and |

The article explains that every command has three text channels: stdin for input, stdout for normal results, and stderr for error messages. The > operator sends stdout to a file and overwrites it, while >> appends to the end of an existing file. Because stderr is stream 2, the 2> operator captures error messages separately, and 2>&1 merges errors into the same destination as normal output, with the order of redirections mattering. A pipe (|) passes one command's stdout directly into the next command's stdin, allowing small tools to be chained together. The piece notes that pipes carry only stdout, so errors from the left-hand command bypass the pipe.