Tech is political: The people under attack in Palestine 🇵🇸, Iran 🇮🇷, and Lebanon 🇱🇧 are people like us. They’re our brothers and sisters, too. Read up on their history, scrutinize what you’re told, and demand respect and accountability. Hide

Frontend Dogma

“php” News Archive

Definition, related topics, tag feed

Definition · Supertopics: programming-languages · Subtopics: frameworks (non-exhaustive) · “php” × ? · “php” RSS feed (per email)

Entry (Sources) and Additional TopicsDate#
Continuing to Move PHP Open Source Forward (jet)358
foss, jetbrains, phpstorm
WordPress PHP-Only Block Registration (css)357
wordpress
Milan Petrović on the Risks of Legacy PHP in WordPress and Why Upgrading Matters for Security (nat)356
podcasts, interviews, wordpress, security, maintenance
How to Provide a “Random Post” Feature With Eleventy and PHP (j9t)355
how-tos, eleventy, randomness, functionality
Who Will Maintain the Web When PHP’s Veterans Retire?354
maintenance
The New “clamp()” Function in PHP 8.6 (ami)353
functions
The PHP 8.5 Pipe Operator (“|>”): Useful, but Watch for These Gotchas352
operators
What’s New in PHP 8.5 (bre)351
Real Performance Benchmarks of PHP 8.5 vs. PHP 8.3 and Node.js350
performance, nodejs, comparisons
Moving PHP Open Source Forward (jet)349
foss, jetbrains
New in PHP 8.5: Closures as Constant Expressions (chr)348
Everything That Is Coming in PHP 8.5 (ami)347
PHP vs. Node.js: Real Truth About Backend Development in 2025 (jay)346
nodejs, comparisons
How PhpStorm Helps Maintain PHP Open-Source Projects: Interviews and Real-World Examples (jet)345
phpstorm, code-editors, foss
Seamlessly Blend PHP With Node.js (mco+/pla)344
nodejs, packages
The Pipe Operator Is Coming to PHP 8.5 (ami)343
operators
PHP 8.4’s New “Dom\HTMLDocument” in Diffs (lia)342
Preventing N+1 Issues Globally in Laravel Using Auto Eager Loading (ami)341
laravel
Static PHP Builds via GitHub Actions (jos)340
github-actions
The New “withAttributes” Method for Relationships and Scopes in Laravel (ami)339
laravel
The State of PHP 2024 [Results] (jet)338
surveys, metrics, laravel, wordpress, symfony, phpstorm, vs-code, sublime-text, code-editors
Introducing Fusion: Write PHP Inside Vue and React Components (eri/lar)337
introductions, tooling, vuejs, react, components
Top PHP Alternative for Web Development?336
javascript, java, python, ruby, c-sharp, go, c++, rust
Why You Should Use Laravel: Benefits of Laravel335
laravel
8 PHP Performance Tips Every Developer Should Know334
performance, tips-and-tricks, conditionals, caching
The PHP Foundation Turns Three (the)333
anniversaries
Octoverse: AI Leads Python to Top Language as the Number of Global Developers Surges332
research, github, community, ai, programming, python, javascript, typescript, java, c-sharp, c++, shells, c, go
Is It the End of Laravel?331
laravel, frameworks, trends
React on the Server Is Not PHP330
servers, react
cpx—the npx Counterpart of the PHP Ecosystem (ami)329
dependencies
The Redmonk Programming Language Rankings: June 2024 (red)328
programming, comparisons, javascript, python, java, c-sharp, typescript, css, c++, ruby, c, go, shells, rust, dart
Look Out, Kids: PHP Is the New JavaScript (dav)327
javascript, laravel, frameworks
The Top Programming Languages 2024 (iee)326
programming, comparisons, python, java, javascript, typescript, sql, go, html, lua
UUIDv7 in 22 Languages (ant)325
programming, javascript, python, sql, shells, java, c-sharp, c++, c, go, rust, ruby, lua, dart, perl, clojure
Rust Growing Fastest, but JavaScript Reigns Supreme324
programming, comparisons, rust, go, javascript, lua, dart, java, c++, ruby, c, python, c-sharp
Let’s Build a Web Scraper in PHP and Python323
scraping, python
Property Hooks Are Coming in PHP 8.4 (ami)322
hooks
Streaming HTML (chr/fro)321
html, streaming
What’s New in PHP 8.4 (ami)320
Tools to Make Your Developer Experience Better in PHP (ami)319
tooling, developer-experience, link-lists
Is PHP Still a Viable Choice in 2023?318
discussions
Checking the Type of a String in PHP (ami)317
strings
PHP Attributes in Laravel316
laravel, attributes
Skip PHPUnit Tests Conditionally in PHP (ami)315
testing
Whatever Happened to the Zend Framework (ami)314
frameworks, zend, history
An Introduction to the Laravel PHP Framework313
introductions, frameworks, laravel
Guide to Using Template Engines (Such as Twig) With PHP312
guides, template-engines, twig
PHP Isn’t That Bad, So Why the Hate? (pur)311
frameworks, myths
Things Considered Harmful (bre)310
laravel
Using PHP Arrays: A Guide for Beginners309
guides, arrays
Time Zone Conversion With PHP308
time, conversion
How to Fix: Child Stylesheet Loading Twice (WordPress) (sta)307
how-tos, wordpress
Quick Tip: How to Cache Data in PHP306
how-tos, caching, tips-and-tricks
Quick Tip: How to Handle Exceptions in PHP305
how-tos, tips-and-tricks, errors
Quick Tip: How to Trim Whitespace With PHP304
how-tos, tips-and-tricks, whitespace
PHP Wishlist: The Pipe Operator (seb)303
wish-lists
Quick Tip: How to Hash a Password in PHP302
how-tos, security, passwords, tips-and-tricks
Quick Tip: How to Check if a Variable Is Set in PHP301
how-tos, variables, tips-and-tricks
Quick Tip: How to Manage Timezones in PHP300
how-tos, internationalization, tips-and-tricks
Quick Tip: How to Manage Error Reporting in PHP299
how-tos, errors, tips-and-tricks
Quick Tip: How to Read a Local File With PHP298
how-tos, file-handling, tips-and-tricks
Quick Tip: How to Filter Data With PHP297
how-tos, tips-and-tricks
Dockerize PHP App With Apache on HTTPS296
docker, apache, servers
Integrate Svelte Into PHP CMS: TYPO3 and WordPress (man)295
typo3, wordpress, svelte, content-management
Best PHP Books for Beginners294
books, link-lists
PHP 8.2.0 Release Announcement293
PHP Type Declarations—A Guide for Beginners (ami)292
guides
Should You Use PHP (Laravel) in 2023291
laravel
The Best PHP Frameworks for 2022290
frameworks
The True Type in PHP 8.2 (ami)289
Converting PNG Images to WebP Using PHP (ami)288
conversion, images, png, webp
A Simple “clamp()” Function in PHP (ami)287
functions
Why I Still Love PHP and JavaScript After 20+ Years (mnl)286
javascript, retrospectives
Unpack Arrays Conditionally in PHP (ami)285
arrays
How to Upload an Image With PHP (rik)284
how-tos, images, file-handling
The Case for PHP Generics (bre)283
generics
PHP Sanitize Data282
sanitization
The Basics—Generics in PHP281
videos, fundamentals, generics
Introducing PHP: A Beginner’s Guide280
introductions, guides
PHP in 2022279
PHP 8 in a Nutshell (ami)278
books
Functional Programming in PHP: Higher-Order Functions277
programming, functions
PHP Date and Time Recipes (css)276
time
PHP 8.1 in 8 Code Blocks275
Laravel Blade Internals—PHP as a Templating Language (lia)274
videos, laravel, template-engines
Flexible API Design: Create Hooks for Your PHP API Pipeline273
apis, hooks
What’s New in PHP 8.1: Features, Changes, Improvements, and More (kin)272
Writing Better Regular Expressions in PHP271
regex, readability
PHP in 2021 (bre)270
retrospectives
What Is Laravel? A Simple Explanation for Beginners269
laravel, frameworks
PHP Reimagined (bre)268
wish-lists
Form Validation With PHP267
forms, validation
Using “throw” as an Expression in PHP 8 (ami)266
Smarter Ways to Generate a Deep Nested HTML Structure (ana/css)265
html, pug
PHP 8: Before and After (bre)264
comparisons
Sending Emails in PHP With PHPMailer263
email, tooling
PHP Is A-OK for Templating (css)262
My PHP Wishlist (lia)261
wish-lists
What’s Next for Web Development? (jch)260
wordpress, javascript
Array Destructuring in PHP (bre)259
arrays
Improving WordPress Code With Modern PHP (sma)258
wordpress, optimization
Avoiding the Pitfalls of Automatically Inlined Code (sma)257
css, javascript, wordpress
Tips for Writing Better Performing PHP Code256
performance, tips-and-tricks
Your First PHP Code255
Twig—the Most Popular Stand-Alone PHP Template Engine254
template-engines, twig
8 Must Have PHP Quality Assurance Tools253
quality, tooling
Adding JSON Feed to Your Site (dre)252
json-feed, perch
Laravel vs. Symfony—Clash of the Frameworks251
frameworks, laravel, symfony, comparisons
How to Create Custom WordPress Shortcodes for Your Editors (cra)250
how-tos, wordpress
Getting Started With PHP (swa)249
introductions, link-lists
Moving From PHP (Laravel) to Go (dvk)248
migrating, laravel, go, performance, metrics
Pay the Price for Open Source247
foss, licensing
Create Thumbnails With PHP (rik)246
images
A Crash Course of Changes to Exception Handling in PHP 7245
crash-courses, errors, debugging
PHP—the Wrong Way244
websites
Working With Databases in WordPress243
wordpress, databases
An in-Depth Look at CORS242
security, cors, javascript
Learn PHP 7, Find Out What’s New, and More (swa)241
tooling, link-lists
PHP vs. Ruby—Let’s All Just Get Along240
ruby, comparisons
Object Orientated Development With WordPress239
wordpress, oop
The State of Accessibility in PHP Tools238
accessibility, code-editors, phpstorm, sublime-text, notepad++
Using GitHub Webhooks With PHP237
github, webhooks
A Wave of Command Buses (mat)236
Analyzing a PHP Project With Jenkins235
tooling, debugging, automation, jenkins
What to Expect From Yii 2.0234
frameworks
Web Technologies Hanging Out Together (chr/css)233
html, css, javascript
PHP and Continuous Integration With Travis CI232
ci-cd, tooling
Best PHP IDE in 2014—Survey Results (swa)231
surveys, code-editors, phpstorm, sublime-text
One Solution to Responsive Images (sma)230
responsive-design, images, html
New Features in PHP 5.6 (swa)229
Best PHP Frameworks for 2014 (swa)228
frameworks, metrics, laravel, symfony
Understanding Forms in Drupal227
drupal, forms
Creating Temporary Files in PHP (arp)226
How to Convert a Negative Number to a Positive Number With PHP225
how-tos, math
WordPress Fragment Caching Revisited (css)224
wordpress, caching, performance
Array Operators in PHP: Interesting but Less Spoken223
arrays, operators
Understanding Streams in PHP (vta)222
streaming
Manage Complexity With the Facade Pattern221
complexity, software-design-patterns
MongoDB Indexing220
databases, mongodb, indexing
Better Understanding Random219
randomness
Base Converting and Binary Operators218
conversion, operators
Extending Twig Templates: Inheritance, Filters, and Functions217
twig, inheritance
Generating One-Time Use URLs216
urls
Object-Oriented PHP (ons)215
oop
PHP Project Management214
project-management
HTTP Archive: Adding Flush213
flushing, performance
Using SSH and SFTP With PHP212
ssh, ftp
The Single Responsibility Principle211
principles, solid
The Complete Guide to WordPress Custom Post Types (sma)210
guides, wordpress
The Open/Closed Principle209
principles, solid
Top 10 PHP Security Vulnerabilities208
security, vulnerabilities
Building Your Own URL Shortener207
mysql, databases, functionality, urls
Compile PHP on Windows206
compiling, windows
Amazon DynamoDB: Store PHP Sessions With a Load Balancer (vta)205
aws, dynamodb, databases, load-balancing
PHP: The Right Way204
websites, books, best-practices
5 Inspiring (and Useful) PHP Snippets203
examples
Working With Files in PHP202
file-handling
Writing Unit Tests for WordPress Plugins (sma)201
wordpress, plugins, testing, javascript
Type Hinting in PHP200
PHP 5.4 Is Released—What’s New? (cra)199
How to Create Your Own Random Number Generator in PHP (cra)198
how-tos, randomness
Bending XML to Your Will197
xml, parsing
Introduction to PHPDoc196
introductions, documentation
A Tour of php.ini195
HTML Forms in HTML Emails (chr/css)194
html, forms, email
10 Tips to Optimize Your WordPress Theme (sma)193
wordpress, theming, optimization, tips-and-tricks
Defining and Using Functions in PHP192
functions
PHP Namespaces191
namespaces
Getting Started With PHP Templating (sma)190
introductions, template-engines, twig
Array Handling Functions189
arrays, functions
Introducing PHP Superglobals188
introductions
Introduction to PHP Arrays187
introductions, arrays
PHP Variables186
variables
Use PHP Flush to Improve Site Loading Speed185
flushing, performance
Better Image Management With WordPress (sma)184
wordpress, images, maintenance
Confessions of a Converted PHP Developer: Mixing Like a Baker183
ruby, mixins, comparisons
How to Synchronize Your PHP and MySQL Timezones (cra)182
how-tos, mysql, databases
10 Things Every WordPress Plugin Developer Should Know (sma)181
wordpress, plugins
Thoughts on PHP Sessions (jed)180
Using CSS Without HTML (mat)179
html, css, http-headers, http, minimalism
Speed Up Your Website With PHP Buffer Flushing (cra)178
flushing, performance
Should You Close PHP Tags? The Debate Continues… (cra)177
formatting, conventions
Best Lightweight PHP Frameworks of 2010176
frameworks, comparisons
PHP With nginx Is About to Become a Lot Easier175
servers, nginx
PHP: What You Need to Know to Play With the Web (cod/sma)174
Debug PHP With Firebug and FirePHP173
debugging, firebug, tooling
jQuery, WordPress, and Your functions.php (the)172
jquery, wordpress
Web Security: Are You Part of the Problem? (cod/sma)171
security, vulnerabilities, javascript
Empty Image “src” Can Destroy Your Site (nza)170
html, images, traffic
Installing PHP on Windows Just Got Easier169
installing, windows
JavaScript Gzip Compression in WordPress: What’s Possible and What Hurts (lyz/clo)168
javascript, compression, gzip, wordpress, performance
How to Use PHP Namespaces: The Basics (cra)167
how-tos, fundamentals, namespaces
How to Install PHP 5.3 on Windows (cra)166
how-tos, installing, windows
PHP Performance Tips165
performance, tips-and-tricks
Sending Nice HTML Email With PHP (chr/css)164
html, email
Custom Fields Hacks for WordPress (sma)163
wordpress
A Minimal Dependency Injection Container for PHP (tro)162
The Tiniest GIF Ever161
images, gif, base64
Server-Side JavaScript Will Be as Common as PHP (ate)160
javascript, comparisons
Restful PHP Web Services159
books, web-services, rest
50 Extremely Useful PHP Tools (sma)158
tooling, link-lists
PHP Frameworks: Comparing CakePHP and Symfony157
frameworks, symfony, comparisons
PHP Include From Root (chr/css)156
servers
DOM vs. Template (tro)155
dom, comparisons
Character Encoding: Issues With Cultural Integration (tro)154
unicode, encoding
Improving the Default Directory View (chr/css)153
apache, servers
Zend Framework 1.6 Featuring Dojo, SOAP, Testing, and More…152
frameworks, zend
Reduce, Reuse, Recycle… Your Code (dal/aja)151
best-practices, programming
Useful In-Browser Development Tools for PHP (tro)150
tooling, link-lists
CSS Variables Using PHP (dav)149
css, variables
To ExtPHP, or to PHP-Ext? (dal/aja)148
extjs
What’s New in PHP 5.3?147
PHP Pretty Date (zac)146
time
Dealing With Dependencies (tro)145
dependencies
Using PHP to Generate CSS144
css, code-generation
JavaScript: It’s Just Not Validation!143
javascript, validation
The State of Functional Programming in PHP (tro)142
programming
How to Redirect index.html to index.php (chr/css)141
how-tos, redirecting, html, apache, servers
7 Reasons I Switched Back to PHP After 2 Years on Rails (ore)140
ruby-on-rails, migrating
Becoming PHP 6 Compatible139
Thinking “lowsrc”—How to Make Sites Appear to Be Available a Lot Faster (cod)138
performance, html, images, attributes
How to Create Alternating Row Colors in PHP137
how-tos, colors, effects
Good and Bad PHP Code (sen)136
quality
PHP Interview Questions From Yahoo135
interviewing, yahoo
Getting PHP to Talk to MySQL134
mysql, databases
Why Are PHP Books and Videos Hard for People?133
documentation
“phpinfo()” XSS Vulnerability (jed)132
xss, vulnerabilities, security
[PHP] Security Tip131
security, tips-and-tricks
Big Arrays in PHP130
arrays
PHP Security From the Inside129
interviews, security, tooling
Loops in PHP128
loops
Overloading Arrays in PHP 5.2.0127
arrays
PHP Security126
security
My Experience Moving to PHP5125
refactoring
[PHP] Debugging and Performance124
debugging, performance
10 PHP Frameworks Compared123
frameworks, zend, symfony, comparisons
XML Validation in PHP122
xml, conformance, validation
Migrating to XForms121
migrating, xforms
The State of Web Development: PHP Developers Most Likely to Switch to Rails (mat)120
programming, ruby-on-rails
Where Are the PHP Women?119
community
Uploading Files and Navigating Directories in PHP118
file-handling
Hot PHP UTF-8 Tips117
unicode, tips-and-tricks
How Strict Is Your Dynamic Language?116
programming, comparisons, perl, ruby, python
Five Common PHP Design Patterns (jhe)115
software-design-patterns
Tutorial: An Introduction to OOP in PHP114
tutorials, introductions, oop
Using Globals in PHP113
An Introduction to Test Driven Development With PHP112
introductions, testing
PHP vs. Ruby111
ruby, comparisons, zend, frameworks
Use PHP to Strip the Last Character in a String110
AJAX Delete Confirmation109
forms, buttons, ajax, usability
Content Negotiation: Why It Is Useful, and How to Make It Work (oli/w3c)108
content-negotiation, internationalization, urls, servers
8 Free Ebooks From Apress107
books, c-sharp, web-services, xml, perl, link-lists
Time Sensitive CSS106
css, time
From the Top: MIME and Content Negotiation105
mime-types, content-negotiation, http-headers, http, xhtml, examples, asp-net
PHP Security: Basic PHP Security104
security, validation
Back to Basics: PHP and Arrays103
fundamentals, arrays
Top 7 PHP Security Blunders102
databases, sql, security, mistakes
User-Defined Access Keys (gez)101
accessibility, accesskeys
CSS Stylesheet Switcher Using PHP (JavaScript Free)100
css, functionality
PHP Code Generation With Elisp (ore)99
code-generation
Track Browser Resizing in Your Database Using AJAX98
ajax, sql, resizing, databases
PHP and HTTP Making Friends97
http
HTML, CSS, PHP, and More Cheat Sheets96
cheat-sheets, link-lists, html, xhtml, css, wordpress, databases, encoding, seo, servers, tooling
The Total Cost of Using PHP? (ore)95
economics
War of the Web: Revenge of the Dynamics (dal/aja)94
web, retrospectives, perl, java, ruby-on-rails, asp-net, javascript, flash, pdf, xaml, html
How Do I Print the Date Using PHP?93
time
How Readable Is Your PHP?92
formatting, documentation
The Voice of Reason in PHP91
CSS Server-Side Constants (sha)90
css, variables
PHP 5 and Design Patterns: An Introduction (inf)89
software-design-patterns, principles
Object Interaction in PHP: Introduction to Composition88
introductions, objects, oop
Object Overloading in PHP 5 (ore)87
objects
Mastering Regular Expressions in PHP86
regex
Planning PHP Projects85
tutorials, project-management
CSS Constants (cod)84
css, variables
Generating Dynamic CSS With PHP (dig)83
css, http
PHP Cheat Sheet82
cheat-sheets
Character Encodings and Input81
unicode, character-references, conformance
Ampersands, PHP Sessions, and Valid HTML (w3c)80
html, character-references, conformance
Easy-Peasy PHP (dig)79
examples
IBM Throws Its Weight Behind PHP78
ibm, zend
PHP Security Consortium77
websites, security
Reconsidering PHP Variables76
variables
Permanent Redirect in PHP (ann)75
redirecting
PHP Predictions for 200574
outlooks
60,000 Lines of JavaScript73
javascript
Track Your Visitors, Using PHP72
analytics, logging, functionality
PHPitfalls: Five Beginner Mistakes to Avoid (dig)71
mistakes
Introducing PHP 5’s Standard Library70
introductions, libraries
PHP Debugging Basics (ore)69
fundamentals, debugging
Enhance Usability by Highlighting Search Terms (bri/ali)68
usability, searching
What I Don’t Like About PHP67
Setting Up a PHP 5 Development Environment With Apache 2 and MySQL 4.1.366
apache, servers, mysql, databases, installing
PHP Trouble65
security
PHP 101: Down the Rabbit Hole64
introductions
Writing Secure PHP63
security, variables, sql, file-handling
Spot the Security Hole62
security
High Performance, High Scalability PHP Is a Lie61
performance, scalability
Dynamic Text Replacement (ali)60
image-replacement, techniques, javascript
PHP and “application/xhtml+xml” (ann)59
xhtml, mime-types
PHP Security Mistakes58
security, mistakes
Writing Clean and Efficient PHP Code57
efficiency, maintainability, loops, objects
About PHP Usage56
Tidy HTML55
html, tooling
Migrating From PHP 4 to PHP 5 (der)54
slides, migrating
Serializing PHP Data Structures for JavaScript53
data-structures, javascript
User-Friendly Form Validation With PHP and CSS (ore)52
forms, validation, css
PHP for Designers (pho)51
design
Implement Bayesian Inference Using PHP50
math
Is Configuration With Arrays a Bad Smell?49
configuration, arrays
Making Usage Statistics in PHP48
mysql, databases, analytics, functionality
Lazy PHP47
PHP Coding Guidelines46
guidelines, conventions, formatting, naming
Keeping Navigation Current With PHP (ali)45
navigation
XML in PHP5: An In-Depth Look Into Advanced XML Features (chr)44
slides, xml
Random Image Rotation (ali)43
images
Generate PDFs With PHP42
pdf, code-generation
Session Management in PHP41
[PHP] Introduction40
tutorials, introductions
Five Habits for Successful Regular Expressions (ore)39
regex, formatting, testing, perl, python
File and Directory Manipulation in PHP38
file-handling
Introduction to Interceptors: Implementing Delegation (seb)37
introductions
PHP Security (ore)36
security
Playing Devil’s Advocate With PHP535
tar File Management With PHP Archive_Tar34
file-handling
Simplified Form Errors33
forms, errors, css
MIME-Types (ann)32
mime-types, xhtml
How Far Can Zend Take PHP?31
zend
Transforming XML With PHP (bru)30
xsl, xml
E-Mailing in PHP29
tutorials, email
PayPal, the PHP Approach28
tutorials
Common Style Mistakes (coo/ore)27
security, mistakes
Using Control Structures in PHP26
conditionals, loops
An Introduction to Arrays25
introductions, arrays
PHP and Heredocs (ore)24
What to Expect in PHP 5.023
Ten Security Checks for PHP (ore)22
security
Verify a User’s Email Address Using PHP21
email
Working With Dates and Times in PHP20
time
Working With Permissions in PHP (coo/ore)19
permissions
Effortless (or Better) Bug Detection With PHP Assertions18
Internationalization and Localization With PHP (ore)17
internationalization, localization
PHP Intro to Objects and Classes16
introductions, objects, oop
Using Amazon Web Services With PHP and SOAP15
aws
PHP and Working With Databases (for the Lazy Sod)14
databases
Build a PHP Switcher (ali)13
css, javascript, theming, functionality
Using a MySQL Database With PHP12
databases, mysql
Side Navigation With PHP (zen)11
navigation, functionality, arrays
Manage Your Content With PHP (ali)10
content-management
Build Your Own Web Service With PHP and XML-RPC9
web-services, xml
XML and PHP8
books, xml
HTML Syntax Checker in PHP (hsi)7
html, conformance, tooling
How to Succeed With URLs (ali)6
how-tos, urls, usability, servers, apache
Search Engine-Friendly URLs5
urls, seo, servers, apache
PHP by Example4
examples
Apache HTTP Authentication With PHP (sen)3
servers, apache, http, authentication
HTML to PHP Converter2
tools, exploration, conversion, html
SQL Formatter1
tools, exploration, optimization, databases, sql, python, formatting